|
|
schnelles Umbennen von Vektoren im Workspace |
|
Matlab_User85 |

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 03.11.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.12.2014, 14:45
Titel: schnelles Umbennen von Vektoren im Workspace
|
 |
Hallo zusammen,
ich habe häufig wiederkehrende Vektoren mit dem gleichen Namen.
z.B.
Für eine nachfolgende Verarbeitung müssen diese Vektoren immer nachträglich umbenannt werden. Beispielsweise soll das Datum angefügt werden. Dann ergibt sich:
z.B.
Gibt es eine einfache Möglichkeit den String
automatisch an alle Vektoren im Workspace anzuhängen?
Das würde natürlich wesentlich schneller gehen als von Hand
Das aktuelle Datum ist nur ein Beispiel. Es können auch andere Zeichen notwendig sein.
Für eure Hilfe wäre ich sehr dankbar
|
|
|
|
|
Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.12.2014, 15:17
Titel:
|
 |
mit dem Befehl eval geht das. Aber willst du das wirklich? Es erhöht nicht gerade die Übersichtlichkeit wenn man Werte (wie z.B. das Datum) in Variablennamen verwendet.
viele Grüße
Thomas
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.12.2014, 01:16
Titel: Re: schnelles Umbennen von Vektoren im Workspace
|
 |
Hallo Matlab_User85,
Die Namen der Variablen gehören zum Programm. Das Datum gehört aber zu den Daten. Je stärker man Daten und Programm trennt, desto flexibeler wird der Code, und gleichzeitig leichter zu warten und zu debuggen.
Ich würde deshalb dringend empfehlen auch Variablen-Namen wie "Vektor1" zu vermeiden, wenn dabei ein Index in den Namen geschmuggelt wird. Besser ist es einen Index als Index zu verwenden, also ein Array zu benutzen.
Das Datum könnte dann z.B. als Feld in einem Struct gespeichert werden.
Gruß, Jan
|
|
|
Alex4456 |

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 17.09.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.12.2014, 09:59
Titel:
|
 |
Hallo,
ich kann mich da nur anschließen.
und würde hier auch gleich mal ein Tipp geben, wie ich es momentan handhabe:
du kannst dann immer noch die Daten sortieren und auswählen indem du
nutzt.
Grüße
|
|
|
Matlab_User85 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 03.11.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.12.2014, 14:22
Titel:
|
 |
|
 |
|
Ich möchte nochmal auf das ursprüngliche Problem zurückkehren. Das Datum ist in meinem Fall nicht unbedingt notwendig. Vielmehr eine fortlaufende Nummerierung, die automatisch durchgeführt werden soll.
Im Zuge einer Messwertverarbeitung liegen mir csv-Dateien in einem normalen Windows-Ordner vor. Zum Beispiel:
Zum Einlesen in Matlab habe ich ein Skript erstellt, welches mir die gewünschten Spalten der csv-Datei als Vektoren auf den Workspace platziert.
Dies muss ich zurzeit immer noch durch eine Kommandozeile von Hand zuweisen, z.B.:
Ich erhalte anschließend die dargestellten Variablen auf dem Workspace von der Datei Messung_1.csv.
Danach führe ich noch ein Skript aus, um die Vektoren meinen Bedürfnissen anzupassen (z.B. Vektoren zusammenführen, Einträge löschen,...). Das Skript arbeitet hierbei mit den stets wiederkehrenden Namen
Anschließend muss ich noch von Hand die Endung mit '_1' oder '_2' oder einer anderen Zahl fortlaufend anpassen, weil sich ja für jeden Einlesevorgang der gleiche Variablenname durch die oben angegebene Zuweisung ergibt.
Wie kann ich den beschriebenen Einlesevorgang noch weiter verbessern?
Wäre es möglich alles soweit zusammenzufassen, um eine Funktion (Skript?) zu starten, welche mir anschließend alle angesprochenen Arbeitsschritte:
- Einlesen Messung_1.csv
- Bearbeiten Vektoren von Messung_1.csv
- Umbenennen Vektoren von Messung_1.csv
- Einlesen Messung_2.csv
- Bearbeiten Vektoren von Messung_2.csv
- Umbenennen Vektoren von Messung_2.csv
- ...
automatisch vornimmt?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 27.12.2014, 14:19
Titel:
|
 |
Hallo Matlab_User85,
Ist die Kernbotschaft angekommen?
Variablen-Namen sollten keine fortlaufenden Nummern enthalten. Einen Index in die Namen der Variablen zu schmuggeln macht Programme unflexibel, schwer erweiterbar und schlecht zu debuggen. Wenn Du stattdessen Felder verwendest, werden die Programme übersichtlicher und können ohne jede weitere Änderung auch mit 5718 Variablen umgehen.
Statt:
wäre es also besser eine "Einlesefunktion" zu erstellen, die "Strom" als {1x3} Cell-Array oder Vektor zurückgibt.
Das Thema wird mehrfach pro Woche besprochen. Suche nach "EVAL".
Gruß, 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.
|
|