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

Anfängerfragen zu for-Schleife und plot

 

diri3l
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 09.06.2014, 17:23     Titel: Anfängerfragen zu for-Schleife und plot
  Antworten mit Zitat      
Hallo,

ich habe hier 5 Tabellen mit Messwerten von meinem Betreuer. In den Tabellen finden sich Messwerte von 5 verschiedenen Sensoren. Die Tabellen sind bereits mit Matlab bearbeitet worden, haben also die Dateiendung .mat und können demnach einfach eingelesen werden.

Nach dem Einlesen, sollen die Messwerte aus der 2. Spalte der 5 Tabellen übereinandergelegt und geplottet werden. Das heißt, dass der 1. Messwert aus der ersten, der erste aus der zweiten, der erste aus der dritten,... Tabelle gleichzeitig geplottet und dann abgespeichert werden sollen. Gleiches für den 2. Messwert, etc.

Ich bin schon ein Stück voran gekommen, leider stelle ich mich herzlich blöd, bei der for-Schleife und vor allem beim Plotten an.

Im Moment ist es so, dass alles in ein und den selben plot gezeichnet wird. Wie kriege ich es hin, dass nach dem Einlesen des ersten Messwertes aus allen 5 Tabellen, diese geplottet werden und dann mit dem 2. Messwert fortgefahren wird?

Code:

clc

for i = 1:5

plot(S15(:,i),'g');

hold on

plot(S12(:,i),'r');
hold on

plot(S6(:,i),'b');
hold on

plot(S3(:,i),'c');
hold on

plot(S9(:,i),'m');
legend('ML1 - S15','ML2 - S12','ML3 - S6','ML4 - S3','ML5 - S9');

print '-depsc2', '/home/Studium/Master/Studienarbeit IGB/Matlab/i.eps'

end
 


Abgespeichert werden sollen die Plots unter fortlaufender Nummer, entsprechend der Nummer des aktuellen Messwerts. Am liebsten noch mit einem String davor. Aber davon bin ich glaube ich noch ein Stückchen entfernt.

Ich würde Vektorgrafiken bevorzugen. Ist '-depsc2' sprich eps als farbige Vektorgrafik kein geeignetes Format?

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


diri3l
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 09.06.2014, 17:30     Titel: Re: Anfängerfragen zu for-Schleife und plot
  Antworten mit Zitat      
Oha, ersten Fehler gefunden, die
Code:
-Geschichte muss mit einem
Code:
beendet werden?


diri3l hat Folgendes geschrieben:


Code:

clc

for i = 1:5

plot(S15(:,i),'g');

hold on

plot(S12(:,i),'r');
hold on

plot(S6(:,i),'b');
hold on

plot(S3(:,i),'c');
hold on

plot(S9(:,i),'m');
legend('ML1 - S15','ML2 - S12','ML3 - S6','ML4 - S3','ML5 - S9');

hold off

print '-depsc2', '/home/Studium/Master/Studienarbeit IGB/Matlab/i.eps'

end
 



... demnach so?
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: 09.06.2014, 21:41     Titel: Re: Anfängerfragen zu for-Schleife und plot
  Antworten mit Zitat      
Hallo diri3l,

Ich verstehe das Problem noch nicht ganz.
Was genau sind "5 Tabellen"? Sind das Matritzen?

Zitat:
Nach dem Einlesen, sollen die Messwerte aus der 2. Spalte der 5 Tabellen übereinandergelegt und geplottet werden. Das heißt, dass der 1. Messwert aus der ersten, der erste aus der zweiten, der erste aus der dritten,... Tabelle gleichzeitig geplottet und dann abgespeichert werden sollen. Gleiches für den 2. Messwert, etc.

Das verstehe ich nicht.

Für das Abspeichern mit fortlaufendem Index:
Code:
print('-depsc2', sprintf('/home/Studium/Master/Studienarbeit IGB/Matlab/%d.eps', i));

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
diri3l
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 09.06.2014, 22:40     Titel: Re: Anfängerfragen zu for-Schleife und plot
  Antworten mit Zitat      
Hallo Jan,

ja tut mir leid. Die Sache ist etwas umständlich beschrieben.

Aber ich sags mal direkt so, es funktioniert! Very Happy So wie du das vorhin gepostet hat klappt das!

Jan S hat Folgendes geschrieben:
Hallo diri3l,

Ich verstehe das Problem noch nicht ganz.
Was genau sind "5 Tabellen"? Sind das Matritzen?


Jap, mit Tabellen, meinte ich Matrizen. Sorry.

Jan S hat Folgendes geschrieben:

Zitat:
Nach dem Einlesen, sollen die Messwerte aus der 2. Spalte der 5 Tabellen übereinandergelegt und geplottet werden. Das heißt, dass der 1. Messwert aus der ersten, der erste aus der zweiten, der erste aus der dritten,... Tabelle gleichzeitig geplottet und dann abgespeichert werden sollen. Gleiches für den 2. Messwert, etc.

Das verstehe ich nicht.


Um das mal anschaulicher zu formulieren: Es geht um die Übertragung von Rammschall im Boden. Mit einem Schlag wird dem Boden mechanische Energie zugeführt. Mittels fünf Sensoren (Geophone) in unterschiedlichen Abständen zur Quelle, wird die transmittierte Energie gemessen. Es werden nicht nur einzelne Schläge aufgezeichnet, sondern eine ganze Reihe von Schlägen (über 4000). Für jedes Geophon existiert eine Matrix. In diesen Matrizen befinden sich die Messwerte für jeden Schlag (4000 Spalten). Das ist für alle 5 Geophone und damit auch für ihre Matrizen gleich. Das heißt der 100te Schlag befindet sich in Matrix 1, wie auch bei Matrix 2,3,4,5 in der 100dsten Spalte.

Ich möchte jetzt, zum Beispiel Schlag 100, also Spalte 100 aus der ersten Matrix mit Spalte 100 aus Matrix 2-5 überlagern und dies Plotten. Jede Quelle (Matrix) bzw. Sensor soll im Plot eine unterschiedliche Farbe haben.

Soweit klappt das ja.

Die Schleife soll über alle Spalten aus den 5 Matrizen laufen und für jede Spalte einen Plot generieren und speichern. Es sollten dann 4000 Plots mit jeweils 5 Grafen, unterschiedlicher Farbe vorhanden sein.


Jan S hat Folgendes geschrieben:

Für das Abspeichern mit fortlaufendem Index:
Code:
print('-depsc2', sprintf('/home/Studium/Master/Studienarbeit IGB/Matlab/%d.eps', i));

Gruß, Jan


Top! Gibt es darüber hinaus noch eine Möglichkeit, die fortlaufende Nummer mit Nullen auf volle tausend aufzufüllen? Also damit da steht:

0001 statt 1?
bzw.
0100 statt 100
etc.

Unter Linux macht mir das nämlich manchmal etwas zu schaffen.

Letzten Endes soll die Datei dann so aussehen:

Schlag_0001.eps

Vielen Dank so weit und Entschuldigung für die umständliche Erklärung!
Daniel

EDITH is darüber gestolpert:

http://www.gomatlab.de/int2str-num2.....ehrenden-nullen-t899.html

Code:

print('-depsc2', sprintf('/home/daniel/Dokumente/Studium/Master/Studienarbeit IGB/Matlab/Schlag_%04d.eps', i));
 


Klappt!
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.