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

Kurven plotten durch Datensätze vom Workspace

 

remix92
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 11.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2017, 16:14     Titel: Kurven plotten durch Datensätze vom Workspace
  Antworten mit Zitat      
Hallo zusammen,
Ich bin ein Neuling wenns um Matlab programmieren geht…

Ich hänge an einem Problem fest...
In Meinem Workspace sind 11 Variablen deklariert („yduenn1,yduenn2,yduenn3 …,yduenn10 und xduenn“).

Ich möchte Gerne eine For Schleife konstruieren, welches auf diese Variablen zugreift und die Gewissen „Funktionen“ plottet!
Der allgemeine Befehlt würde folgendermaßen aussehen:
Code:
xduenn= (1:length(yduenn));
xduenn=xduenn(:);
K=movmedian(yduenn,19);
subplot (1, 2, 1)
plot(xduenn,yduenn)
subplot (1, 2, 2)
S=yduenn-K;
subplot(1, 2, 2)
plot(xduenn,S,'o-')


usw., für jeweils weitere “yduenn2,…” Datensätze.
Variablen S und K sind Variablen, die neu erzeugt werden…

Wäre für jede Hilfe dankbar Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2017, 17:53     Titel:
  Antworten mit Zitat      
Hallo,

das ginge mit eval, ist aber schwierig zu debuggen und daher nicht empfehlenswert.
Besser ist, statt vieler Variablen ein Cell Array yduenn anzulegen. Der Zugriff auf die k-te Komponente erfolgt dann über
Code:


Grüße,
Harald
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: 12.07.2017, 19:40     Titel: Re: Kurven plotten durch Datensätze vom Workspace
  Antworten mit Zitat      
Hallo remix92,

Bitte poste immer nur einen Thread pro Frage. Anderfalls kann ein Antwortender Zeit damit verschwenden eine Antwort zu tippen, die bereits an anderer Stelle gegeben wurde. Danke!

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 11.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2017, 14:09     Titel:
  Antworten mit Zitat      
@Jan S :Vielen Dank! Merk ich mir für die Zukunft Smile

@Harald: Vielen Dank für deine Hilfe Smile
Leider bin ich gerade am verzweifeln...

Code:

for k=1:4
xduenn= (1:length(yduenn(k)));
xduenn=xduenn(:);
K=movmedian(yduenn(k),19);
subplot (1, 2, 1)
plot(xduenn,yduenn(k))
subplot (1, 2, 2)
S=yduenn(k)-K;
subplot(1, 2, 2)
plot(xduenn,S,'o-')
end

 


habe Versucht deinen Vorschlag umzusetzen, leider ohne Erfolg.....
was Mach ich Falsch ?
Es wird ausgeführt, und es öffnet sich auch das Plot Fenster, aber leider ohne Kurven und ohne eine Fehlermeldung ...

"yduenn" ist als eine double Variable in matlab definiert, die aus einem 33x4 "Matrix"besteht.
Würde gerne nun Spaltenweise die Kurven ausgegeben haben Smile
Leider komm ich nicht weiter...
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: 13.07.2017, 14:36     Titel:
  Antworten mit Zitat      
Hallo remix92,

Vielleicht meinst Du:
Code:
K = movmedian(yduenn(:, k), 19);

"yduenn(k)" ist nur das k.te Element.
Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
remix92
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 11.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2017, 15:06     Titel:
  Antworten mit Zitat      
Super!
genau so möchte ich das haben Smile
Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
remix92
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 11.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2017, 13:36     Titel:
  Antworten mit Zitat      
Eine Kurze Frage hätte ich noch Smile

Wie kann ich die Schleife autoamtisiert beenden lassen, sobald keine Einträge mehr in der Spalte sind?

Meine Idee wäre,zu überprüfen ob die Zelle in in der jeweiligen Spalte leer ist und dann durch "break" die Schleife abzubrechen...

Code:

if isempty(yduenn(1, k)), break, end
 


funktoniert leider nicht ...
Private Nachricht senden Benutzer-Profile anzeigen
 
remix92
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 61
Anmeldedatum: 11.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2017, 14:45     Titel:
  Antworten mit Zitat      
Habe es selber herausgefunden Smile

Code:

for k=1:size(yduenn,2);
 
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 - 2024 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.