ich komme in Matlab aufgrund eines trivialen Problems, selbst nach umfangreicher Literatur und Internet-Recherche nicht weiter.
Folgendes hab ich ich vor:
Messdaten sollen weiter verarbeitet werden, bspw. FFT. Diese liegen in einem *.mat-File vor, allerdings verschachtelt, d.h. wenn ich mein mat-File lade, so gibt es lediglich eine Variable, bspw 'Daten' hinter der sich weitere Variablen verstecken, d.h.: Daten.y_Werte.Werte
Diese kann ich aufrufen durch
>load 'Daten.mat'
>Daten.y_Werte.Werte
Hinter Werte verbirgt sich eine riesige Matrix 8000x20. Diese soll nun spaltenweise verarbeitet werden, d.h. Spalte 1 -> Signalverarbeitung, plotten, fertig; Spalte 2 -> Signalverarbeitung, plotten, fertig usw.
ja vielen Dank , es scheint zu funktionieren. Jedoch habe ich jetzt das Problem, dass die erstellten Plots jedes Mal überschrieben werden. Wie kann ich diese Problem beheben?
Ich bräuchte also eine Funktion, um die nach jedem Durchlauf (pro Datenreihe werden sollen 6 Diagramme erstellt werden) die erstellten Diagramme speichert.
Sinnvoll wäre an dieser Stelle natürlich jedes Diagramm auch richtig zu benennen, bspw. Diagramm 1; Messreihe 1, aber das sei zunächst zweitrangig.
Es ist nicht effizient, wenn wir raten, was Du genau machst. Wenn Du den Code postest, ist es trivial einen Ratschlag zu geben, an welcher Stelle man eine zusätzliche Zeile einfügen muss um eine neue Figure zu öffnen.
Ich weiß auch nicht, was genau "Diagramm speichern" bedeutet. Das könnten eine Menge verschiedener Dinge sein.
Es ist ebenfalls nicht klar, was "Diagramme benennen" bedeutet: Ein Titel üder dem Diagramm, ein Titel für die Figure, oder der Name eines abgespeicherten Grafik-Files?
Bei der Kommunikation in einem Forum ist zu bedenken, dass die Leser nicht den blassesten Schimmer davon haben, was Du genau machst, obwohl es für Dich vollkommen offensichtlich ist. Oft ist eine Antwort, bei der die Details geraten wurden, sogar noch schädlicher als gar keine Antwort, weil falsche Vorschläge Zeit rauben und einen zusätzlich verwirren. Deshalb rate ich Dir, alle notwendigen Details zu posten und dabei lieber ein klein wenig zu viele Details zu erklären.
f = fa/2*linspace(0,df,N/2); % Frequenzvektor: Skalierung des Ergebnisses
fig=(figure(fig+1)) plot(f,2*abs(Y_win(1:N/2)))% Plot in Skalierung title('Frequenzspektrum y(t) nach Fensterung') xlabel('Frequency (Hz)') ylabel('|Y(f)|')
% Ausgabe in dB % ------------------
fig = figure(fig+1);
plot(f, 20*log10(2*abs(Y_win(1:N/2))))
%axis([-fn fn -10020*log10(a/2)+3])
%axis([-fn fn -1003]) title('Amplitudengang') ylabel('Amplitude in dB') xlabel(['Auflösung: ',num2str(df),' Hz Frequenz in Hz']) grid
Die erste figure besitzt jetzt schon einmal die Laifvariable iCol und erhöht sich immer um 1. Wenn ich das Programm jetzt durchlaufen lasse, wird figure 1-6 problemlos erstellt, nun geht es beim nächsten iCol mit 2 weiter und die schon bestehende figure 2 wird überschrieben usw.
Meine Überlegung wäre nun nach jedem iCol die 6 erstellten zunächst zu speichern, bevor der nächste Datensatz verarbeitet wird.
Ich bin keine Matlab-Spezialistin, dies ist mein erster Kontakt mit Matlab. Der Code ist aus mehreren hier im Forum herumschwirrenden Codes zusammengebastelt und angepasst.
Wenn dies Dein erster Kontakt mit Matlab ist, kannst Du mir bitter erklären, wie Du auf "clc, clear all, close all" kommst? Diese brutalen Aufräum-Methoden verfolgen mich durchs Forum und ich verstehe einfach nicht, wo die Idee dazu herkommen könnte. "clear all" löscht alle Funktionen aus dem Speicher und das Nachladen von der Festplatte raubt Zeit, bietet aber nur dann einen Nutzen, wenn man während(!) des Programmlaufs alle(!) M-Files geändert hat.
Zitat:
Meine Überlegung wäre nun nach jedem iCol die 6 erstellten zunächst zu speichern, bevor der nächste Datensatz verarbeitet wird.
Was bedeutet das nun genau? In welchem Format möchtest Du die Figure abspeichern? Wieso nur nach 6 Figures und nicht nach dem Erstellen jeder einzelnen Figure (das wäre einfacher).
Ich hab die erste figure aus der Schleife rausgezogen, dann 6 neue figures erstellt und diese über den printbefehl einzeln gespeichert.
Bevor die for-Schleife nun mit der nächsten Spalte anfängt und die Berechnungen erneut beginnen:
Ich gebe ja zu, es gibt sicherlich geschicktere Methoden, dennoch funktioniert es .
Einstellungen und Berechtigungen
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
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.