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

Variablennamen in Array speichern und mit Schleife abrufen

 

Solario
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.06.19
Wohnort: ---
Version: 2018b
     Beitrag Verfasst am: 10.06.2019, 11:21     Titel: Variablennamen in Array speichern und mit Schleife abrufen
  Antworten mit Zitat      
Hallo zusammen

Dies ist meine erste Frage hier im Forum. Leider bin ich auf meiner Suche noch nicht auf die Lösung gestossen.
Ich habe verschiedene Variablenbezeichnungen mit jeweils abgespeicherten Messwerten. Nun möchte ich die Messwerte in einer Schleife auswerten. Dazu habe ich versucht, die unterschiedlichen Variablennamen in einem Array abzuspeichern und anschliessend mit dem Aufruf der einzelnen Elemente die jeweilige Matrix, die in dieser Variable abgespeichert ist, aufzurufen. Also in etwa so:

Code:

Messdaten=[     % Erste Variable mit individuellem Namen und einer Reihe von Messdaten
1 0.5
2 0.6];

Testdaten=[     % Zweite Variable mit individuellem Namen und einer Reihe von Messdaten
1 0.4
2 0.7];

Kennlinie=[{'Messdaten'},{'Testdaten'}]; % Abspeichern der individuellen Messdaten-Namen. Wie ist hier die richtige Syntax?

for k=1:2
plot(Kennlinie(k)(:,1),Kennlinie(k)(:,2)); % Hier möchte ich die beiden Kennlinien aus "Messdaten" und "Testdaten" in der Schleife übereinander plotten, jeweils erste Spalte gegen zweite Spalte. So gehts natürlich nicht, aber wie?
end
 


So, irgendwie nicht so einfach, dieses Problem zu schildern Confused Ich hoffe, dass es einigermassen verständlich ist, sonst bitte einfach nachfragen.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

möglich ist das in der Form nur mit eval , allerdings schwierig umzusetzen, schlecht nachvollziehbar und zu debuggen.

Ich würde aber stattdessen empfehlen, die Daten in einem Cell Array oder einem Struct abzulegen. Dann lässt sich leichter iterieren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Solario
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.06.19
Wohnort: ---
Version: 2018b
     Beitrag Verfasst am: 10.06.2019, 23:44     Titel:
  Antworten mit Zitat      
Super, besten Dank für den Tipp! Ich habe nun begonnen mit Cell Arrays zu arbeiten, das funktioniert bisher bestens. So ist es möglich, immer in der ersten Spalte die Bezeichnung und in der zweiten Spalte die Matrix mit den Messdaten einzufügen. Das weitere Problem, welches ich hatte, dass nicht immer genau gleich viele Messwerte in der Matrix enthalten sind, hat sich so im gleichen Aufwisch erledigt. Ich hatte erst vor, alle Messdaten in eine grosse Matrix zu schreiben, aber dann wäre es für die Weiterverarbeitung mühsam gewesen, wenn nicht überall gleichviele Messwerte vorhanden sind.

Mein Code hat nun diese Form:

Code:

Messdatensammlung{1,1}='Messdaten';
Messdatensammlung{1,2}=[
1 0.5
2 0.6];

Messdatensammlung{2,1}='Testdaten';
Messdatensammlung{2,2}=[    
1 0.4
2 0.7];

x=length(Messdatensammlung);

for k=1:x
    Kennlinie=Messdatensammlung{k,2};
    plot(Kennlinie(:,1),Kennlinie(:,2));
    hold on
    name{k}=[Messdatensammlung{k,1}];
end

legend(name)
 

Juhu, jetzt habe ich gerade auch noch das mit der Legende geschafft, dass da alles mitkommt und nicht nur ein einziger Eintrag erscheint. Very Happy

Beste Grüsse
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.