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

Verarbeitung mehrerer Tabellen

 

Overdue
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.11
Wohnort: Peking
Version: R2009b
     Beitrag Verfasst am: 13.10.2011, 10:22     Titel: Verarbeitung mehrerer Tabellen
  Antworten mit Zitat      
Hallo, ich hoffe ich poste hier in das richtige Forum. Sorry falls nicht.

Mein Problem bzw. meine Aufgabe ist folgende:

Ich habe mehrere Tabellen sprich mehrere Dateien erzeugt (externes Programm). Aus einer jeweiligen Tabellen moechte ich aus bestimmten Spalten Graphen erzeugen und diesen Plot dann als Bild abspeichern. Dies hab ich bereits fuer eine Tabelle auch hin bekommen:

Code:

LC11=importdata('LC1.1_MonopileOffshore.out'); %Einlesen der Datei
hold on;
plot(LC11.data(1:40000,1),LC11.data(1:40000,2),'g'); %Plot des Graphen fuer diese Spalte
plot(LC11.data(1:40000,1),LC11.data(1:40000,6),'y'); %Plot des Graphen fuer diese Spalte
plot(LC11.data(1:40000,1),LC11.data(1:40000,11),'r'); %Plot des Graphen fuer diese Spalte
plot(LC11.data(1:40000,1),LC11.data(1:40000,13),'c'); %Plot des Graphen fuer diese Spalte
xlabel('Zeit') %die Achse stellt die Zeit da
legend('WindVxi','Power','PitchAngle','RotSpeed'); %Legende um Graphen zu unterscheiden
saveas(gcf,'LC1.1_MonopileOffshore.bmp') %Abspeichern des Plots

 



Die einzelnen Tabellen bzw. Dateinamen ergeben sich folgendermassen:

LC1.1_MonopileOffshore.out
LC1.2_MonopileOffshore.out
LC1.3_MonopileOffshore.out
LC1.4_MonopileOffshore.out
LC1.5_MonopileOffshore.out
LC2.1_MonopileOffshore.out
...
LC2.5_MonopileOffshore.out
LC3.1_MonopileOffshore.out
...
usw.

(Ich hoffe die Reihenlogik laesst sich erkennen)


Nun mein Problem:

Ich moechte nicht fuer jede Datei meine m-File von Hand aendern.

Wie kann ich das ganze nun automatisieren, also das alle Tabellen dementsprechend ausgewertet und entsprechende Bild-Dateien abgespeichert werden?

Ich habe schon lange im Internet danach gesucht, auch aehnliche Problemstellungen und Loesungen gefunden, jedoch kann ich durch meine doch eher geringen MatLab Kenntnisse diese nicht anwenden.

Ich hoffe ihr koennt mir weiterhelfen! Waere euch sehr dankbar!

P.S. Sorry dass ich keine Umlaute verwende, ich befinde mich gerade nicht in Deutschland bzw. hab keine deutsche Tastatur
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.10.2011, 10:51     Titel:
  Antworten mit Zitat      
Hallo,

etwas in der Art:
Code:
for I=1:5
for J=1:3
dateiname = ['LC' num2str(I) '.' num2str(J) '_MonopileOffshore.out'];
% dann mit Dateiname weiter arbeiten
end
end

Ebenso kannst du natürlich den Dateinamen für die Figure anpassen.

Alternativ könntest du dir mit
Code:
l = dir('C:\dein_verzeichnis\*.out');
for J = 1:length(l)
dateiname = l(J).name;
% dann mit Dateiname weiter arbeiten
end

auch alle im Verzeichnis enthaltenen Dateien holen und sie verarbeiten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 13.10.2011, 11:18 Uhr von denny
Von sonstige Anwendungsgebiete nach Programmierung
 
Overdue
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.11
Wohnort: Peking
Version: R2009b
     Beitrag Verfasst am: 13.10.2011, 12:02     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank fuer deine schnelle Antwort.

Also mit deinem ersten Vorschlag habe ich folgendes erstellt:

Code:

clc
clear all

for I=1:5
for J=1:3
dateiname=['LC' num2str(I) '.' num2str(J) '_MonopileOffshore.out'];
% dann mit Dateiname weiter arbeiten


dateiname=importdata(dateiname); %Einlesen der Datei
hold on;
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,2),'g'); %Plot des Graphen fuer diese Spalte
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,6),'y'); %Plot des Graphen fuer diese Spalte
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,11),'r'); %Plot des Graphen fuer diese Spalte
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,13),'c'); %Plot des Graphen fuer diese Spalte
xlabel('Zeit') %die Achse stellt die Zeit dar
legend('WindVxi','Power','PitchAngle','RotSpeed'); %Legende und Graphen zu unterscheiden


saveas(gcf,'dateiname.bmp') %Abspeichern des Plots


end
end

 


Bin damit schon einen Schritt weiter. Das "Figure 1" Fenster zeigt immer einen anderen Graphen.

Jedoch kann ich die Graphen jetzt noch nicht auswerten, da es relativ schnell geht und die Datei "Dateiname.bmp" immer ueberschrieben wird. Also es werden keine verschiedenen Plots abgespeichert.

Habe etwas im Forum gesucht und das gefunden:

http://www.gomatlab.de/plot-unter-a.....men-speichern-t11889.html

Damit bekomme ich es leider auch nicht hin bzw. weiss nicht wie ich das auf meine Problem uebertrage.

P.S.: Vielen Dank fuer deine Hilfe, habe schon gerade wieder etwas gelernt Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.10.2011, 12:36     Titel:
  Antworten mit Zitat      
Hallo,

ich hatte bereits geschrieben:
Zitat:
Ebenso kannst du natürlich den Dateinamen für die Figure anpassen.


Ausgehend von der Variante für die Quelldateien sollte es ja nun auch kein Problem sein, mit einem ähnlichen Konstrukt einen Bildnamen zusammenzubasteln.

Mit dem Befehl PAUSE kannst du übrigens künstliche Pausen einbauen, z.B.
Code:

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Overdue
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.11
Wohnort: Peking
Version: R2009b
     Beitrag Verfasst am: 14.10.2011, 10:55     Titel:
  Antworten mit Zitat      
Alles klar, ich habe es so geloest bekommen:

Code:

clc
clear all
for J=1:12 % Definition erster Ziffer
for I=1:5 % Definition zweiter Ziffer

dateiname=['LC' num2str(J) '.' num2str(I) '_MonopileOffshore.out'];
% Definition Variable, dann mit Dateiname weiter arbeiten


dateiname=importdata(dateiname); % Einlesen der Datei
hold on;
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,2),'g'); % Plot des Graphen fuer diese Spalte
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,6),'y'); % Plot des Graphen fuer diese Spalte
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,11),'r'); % Plot des Graphen fuer diese Spalte
plot(dateiname.data(1:40000,1),dateiname.data(1:40000,13),'c'); % Plot des Graphen fuer diese Spalte
xlabel('Zeit') % die Achse stellt die Zeit dar
legend('WindVxi','Power','PitchAngle','RotSpeed'); % Legende und Graphen zu unterscheiden

graph=['LC' num2str(J) '.' num2str(I) '_MonopileOffshore.bmp']; % Variablenname fuer print Befehl
print('-f1', '-dbmp', graph); % druck bzw. abspeichern des Plots als Bilddatei

clf
hold off

end
end
 


Vielen Dank an Harald!
Private Nachricht senden Benutzer-Profile anzeigen
 
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.