|
|
Automatisches speichern von Variablen mit Namenszusatz |
|
PeterK |

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.07.2014, 17:39
Titel: Automatisches speichern von Variablen mit Namenszusatz
|
 |
|
 |
|
Hallo alle zusammen,
ich habe ein kleine Problem mit Matlab.
Der Ausgabewert einer Funktion ist eine ein 3-fach indiziertes Konstrukt also quasi eine 3D-Matrix.
Diese Funktion befindet sich in einem for-loop und wenn ich das Ergebniss jedes Loopdurchlaufes speichere bekomme ich ein 4-fach indiziertes Konstrukt welches etwas "unübersichtlich" wird
Jetzt würde ich gerne jedes Mal wenn die Funktion eine solche 3D-Matrix zurück gibt diese unter einem extra Variablen-Namen speichern, so dass ich später die Datensätze besser den Schleifen zuordnen kann, also in der Art:
wobei n im Ergebnisnamen dann automatisch durchnummeriert sein soll. Letztlich hätte ich in meinem Matlab Workspace gerne folgende Variablen:
Ergebnis_von_schleife_1
Ergebnis_von_schleife_2
Ergebnis_von_schleife_3
.....
Gibt es diese Möglichkeit die Variablen automatisch durchnummerieren zu lassen? Kann mir da jemand weiter helfen?
Viele Grüße
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 10.07.2014, 17:44
Titel:
|
 |
Hallo
solche Fragen über dynamischen Variablen ist zwar über EVAL lösbar, aber nicht empfehlenswert, wäre es nicht besser einen Cell-Array dafür zu verwenden?
so:
|
|
|
PeterK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 00:34
Titel:
|
 |
Hallo,
hmmmm.... also nur wenn es wirklich nicht anders geht... 4D-Arrays sind halt irgendwie so unübersichtlich, vor allem wenn man mehrere davon hat und die Parameter die geändert werden jeweils auch noch unterschiedlich sind
Mein Hintergedanke ist nämlich, dass ich in den Namenszusatz nicht nur die Schleifennummer, sondern auch noch alle wichtigen Parameter schreibe, sonst verliere ich irgendwann mal total den Überblick. Da wäre es halt sehr geschickt, wenn wenn man die einzelnen Ergebnisse gleich schön aufgelistet im Workspace hat und man schon am Namen der Variablen erkennt, was für Daten es den sind
Was wäre den das Problem mit EVAL?
Oder vielleicht könnte ich die Ergebnisse jeweils gleich als Mat-File speichern. Das ist zwar nicht sonderlich elegant und wohl auch nicht schnell, aber würde eventuel auch seinen Zweck erfüllen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 09:05
Titel:
|
 |
Hallo,
Zitat: |
Mein Hintergedanke ist nämlich, dass ich in den Namenszusatz nicht nur die Schleifennummer, sondern auch noch alle wichtigen Parameter schreibe, sonst verliere ich irgendwann mal total den Überblick. |
Genau das "erreichst" du mit deinem Ansatz letztlich. Solche Informationen können beispielsweise als Felder in einer Struktur aufgenommen werden, aber bitte nicht in die Variablennamen. Sonst endet man schnell mit mehreren 100 Variablen, die alle mit EVAL verarbeitet werden müssen.
Grüße,
Harald
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 09:18
Titel:
|
 |
Hallo,
das mit den dynamisch erzeugten Variablennamen ist schlecht, da jedes weitere automatisierte Verarbeiten der Daten auch nur aus weiteren Kombinationen von sprintf() und eval() funktioniert. Das wird schnell unübersichtlich und schlecht nachvollziehbar. Im Prinzip geht es aber...
Das mit dem Speichern als mat-file hingegen halte ich für eine gute Idee.
Dazu braucht man dann nur noch eine geeignete Funktion fürs laden, zum Beispiel so:
Viele Grüße,
Nras.
|
|
|
PeterK |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 23.12.13
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 15:19
Titel:
|
 |
Vielen Dank für eure Antworten!
Ich werde es nun tatsächlich so lösen, dass ich die Ergebinisse jedesmal in ein mat-file speichere und die mat-files entsprechend benenne, so dass ich später noch weiß welche Parameter variiert wurden!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.07.2014, 17:29
Titel:
|
 |
Hallo PeterK,
Bedeutungen in Namen zu speichern ist immer eine schlechte Idee. Eine Trennung von Daten und Code ist flexibeler.
Due kannst die Messbedingungen in einer zusätzlichen Variable speichern und so ganz ausführlich im Mat-file mit abspeichern, anstatt sie in krypt. Abgek. Form im Datei-Namen zu veschlüsseln.
Viele Grüße, Jan
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|