WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

.mat Files mit Schleife einlesen und ploten

 

DanielGast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2016, 16:39     Titel: .mat Files mit Schleife einlesen und ploten
  Antworten mit Zitat      
Hallo liebe Matlab-Gemeinde,

ich habe ein kleines Problem, ich habe schon die Suchfunktion gequält und diverse Forenbeiträge studiert, jedoch habe ich noch keine Lösung gefunden. Mein Problem ist folgendes. Ich habe etwa 800 .mat Files welche einen Datensatz beinhalten. Alle Files heißen gleich bis auf die fortlaufende Nummerierung. Ich möchte jetzt zuerst File 1 einlesen, ploten, dann File 2 einlesen ploten usw (in jedem der 800 Files haben die zu plotenen Daten die selben Namen ) ... ich habe schon verschiedene Ansätze durch aber ich stelle mal meinen letzten vor:

-Ich habe jetzt erstmal die Nummerierung per Hand eingegeben, eine Schleife kommt dafür später)
-Filename sind XXXX001-XXXX800


Code:
clc
clear all
close all

c=[330,331,332,333,334,335,336,337,338,339,340,341,342,343,344];
b = length(c);

for a=1:b
    load (sprintf('p2_in_1234_%d', c(a)))
   
    plot (X,Y)
    xlabel('X-Wert')
    ylabel('Y-Wert')
    hold on
   
end
 


So funktioniert das absolut nicht
Jetzt habe ich mal load und plot kommentiert/weggenommen, also wie folgt :


Code:
clc
clear all
close all

c=[330,331,332,333,334,335,336,337,338,339,340,341,342,343,344];
b = length(c);

for a=1:b
   
    sprintf('p2_in_1234_%d', c(a)))
   

end
 

jetzt zeigt er mir zumindest schonmal die korrekte Auflistung der Ordnernamen an.

Ich weiß aber an diesem Punkt nicht mehr weiter, gefühlt habe ich schon alles ausprobiert und ich komme einfach nicht weiter.

Vielen Dank und liebe Grüße Daniel

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 25.04.2016, 16:49     Titel:
  Antworten mit Zitat      
Wenn ich in Lage wäre die Software die diese fortlaufenden Namen erstellt zu verändern, würde ich das tun...

Wenn ich aber damit leben muss:

Code:

filename='Name001.dat'
disp(['load(''', filename, ''')'])
eval(['load(''', filename, ''')'])
 


Hier nur das Beispiel. Ich bastle mir einen String zusammen der den gesamten Befehl enthält. Die Zahl kann dann z.B. über NUM2STR von einer Indexvariable kommen. Der DISP Befehl hilft mir beim Debuggen, weil es kann recht unübersichtlich werden und EVAL schmeisst halt nur irgendeinen Fehler.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
gandy
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 31.03.16
Wohnort: nähe Münnchen
Version: R2019 b
     Beitrag Verfasst am: 25.04.2016, 16:55     Titel:
  Antworten mit Zitat      
1) Anzahl der Elemente im Ordner ermitteln:
Code:
intAmountOfFrames = size(dir('Ordnername'),1)-2; %Zählen der Elemente innerhalb des Ordners

for m = 1:intAmountOfFrames


2) versuchs mal mit
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.04.2016, 23:57     Titel: Re: .mat Files mit Schleife einlesen und ploten
  Antworten mit Zitat      
Hallo DanielGast,

Das ist ein verwirrender Thread.

Zitat:
-Filename sind XXXX001-XXXX800
p2_in_1234_%d

Was jetzt? XXXX001 oder q5_in_1234?
Gehen die Zahlen von 330 bis 344, oder von 1 bis 800?
Heißen die Zahlen "1" bis "800" oder "001" bis "800"?

@Andreas:
Wieso dies:
Zitat:
Code:
eval(['load(''', filename, ''')'])

Und nicht einfach:
Code:

?

Code:
axes('NextPlot', 'add');   % Sattt: hold on
DirList = dir(fullfile(cd, 'p2_in_1234_*.mat'));
for k = 1:numel(DirList)
  File = fullfile(cd, DirList(k).name);
  Data = load(File);
  plot (Data.X, Data.Y);
end
xlabel('X-Wert')
ylabel('Y-Wert')

Hilft das? Wenn nicht, was läuft genau nicht?

Gruß, Jan

Zuletzt bearbeitet von Jan S am 27.04.2016, 12:21, insgesamt 3-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 26.04.2016, 08:10     Titel:
  Antworten mit Zitat      
Meine generelle Technik ist für das zusammenbasteln von Strings, die dann EVALuiert werden. Korrekt ist, dass man es im Spezialfall einfacher machen kann. Ich habe nur das Gefühl der Nutzer hat da einen recht bunten Dateinamen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.