|
|
Variable einen Namen als String zuweisen |
|
Slamdunker23 |

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 15:14
Titel: Variable einen Namen als String zuweisen
|
 |
Hallo zusammen.
Ich gebe euch mal ein einfaches Beispiel. In meinem Fall ist das Beispiel in einer Schleife und betrifft ungefähr 1000 Variablen.
Ich definiere eine Variable:
Wie kann ich den String new_string_a der Variable a zuweisen?
Vielen Dank für eure Hilfe!
Slamdunker23
|
|
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 18:14
Titel:
|
 |
Die Frage verstehe ich nicht. Du weist doch new_string_a den String 'b' zu. Genauso kannst Du mit
der Variable a den String 'new_string_a' zuweisen.
|
|
|
Slamdunker23 |
Themenstarter

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 09:26
Titel:
|
 |
Guten Morgen!
Ja ich glaube, du hast mich falsch verstanden
Ich will nicht den Wert der Variable a [1,2,3,4] ändern, sondern die Variablenbezeichnung.
Also zum Anfang definiere ich eine Variable a = [1,2,3,4].
Irgendwann im Skript bekomme ich einen String 'b' und diesen String will ich dem Wert der Variable a zuweisen.
Da das in einer Schleife passiert kann ich nicht sagen b = a.
Ist das verständlicher?
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 10:04
Titel:
|
 |
Du möchtest also eine Variable mit dynamischem Variablennamen?
Dafür gibt es ungünstige Möglichkeiten, wie man es umsetzen kann (Stichwort eval oder assignin). Wenn du nach "dynamischer Variablenname" suchst, solltest du auch Antworten finden.
Davon rate ich aber ab.
Sinnvoller ist es, mit einem Strukt oder Cellarray zu arbeiten.
Bsp.:
a.values = [1,2,3,4];
a.varName = 'b';
Damit kann man ebenso alles machen, es läßt sich aber ohne Folgeprobleme sinnvoll damit umgehen.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Slamdunker23 |
Themenstarter

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 12:54
Titel:
|
 |
Hallo Martina.
Okay ich habe noch nie mit structures gearbeitet.
Wie definiere ich jetzt, dass die Werte aus dem structure a [1,2,3,4] dem varName aus structure a 'b' zugeordnet werden, sodass ich am Ende eine Variable mit der Bezeichnung b und den Werten [1,2,3,4] im Workspace habe?
Vielen Dank!
Ich glaube ich denke viel zu kompliziert...danke für deine Hilfe.
Gruß, Slamdunker23
|
|
|
felix |

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 16.01.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2014a
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 13:16
Titel:
|
 |
Hallo Slamdunker,
eine schnelle Lösung für dein Problem wäre z.B.:
|
|
|
BlackDread |

Forum-Century
|
 |
Beiträge: 212
|
 |
|
 |
Anmeldedatum: 11.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2015a
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 14:57
Titel:
|
 |
Hallo Slamdunker23,
Zitat: |
Ich glaube ich denke viel zu kompliziert... |
an dem Punkt kommt fast jeder mal an, wenn er was in Matlab macht. Die Versuchung etwas mit eval zu machen ist riesig... bringt aber nur noch mehr hirnverknotungen und zieht nur weitere "eval"s nach sich.
Du könntest z.B. versuchen mit Structs und DynamicFieldnames zu arbeiten.
Alternativ kannst du vielleicht auch einen etwas größeren Umfang deines Programms posten und wir können dir vielleicht helfen, das komplizierte Konstrukt zu entwirren.
Grüße
Chris
_________________
--> Kapieren statt Kopieren <---
____________________________________________________
FAQs sind dazu da, FAQs zu beantworten
Richtig fragen!
|
|
|
Slamdunker23 |
Themenstarter

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 16:24
Titel:
|
 |
Okay, vielleicht denke ich doch viel zu kompliziert.
In meinem Workspace sind mehrere Variablen (Typ: double), die alle in ihrem Namen einen bestimmten Zusatz haben (Geschwindigkeit_Test, Zeit_Test, Datum_Test).
Das einzige was ich will ist, die Variablen unter einem neuen Namen, ohne den Zusatz _Test, speichern.
Mein Ansatz war, dass ich die einzelnen Variablen in einer Schleife durchlaufen lasse und jeweils den neuen Variablennamen bestimme und diesen dann dem ursprünglichen Variablenwert wieder zuschreibe.
Ist das verständlich?
|
|
|
BlackDread |

Forum-Century
|
 |
Beiträge: 212
|
 |
|
 |
Anmeldedatum: 11.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2015a
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 16:30
Titel:
|
 |
Hallo Slamdunker,
woher bekommst du denn die Variablen (Geschwindigkeit_Test, Zeit_Test, Datum_Test)? Kann bei deren Erstellung nicht auf "sinnvolle" Weiterverarbeitbarkeit geschaut werden? Z.B. an diesem Punkt schon mit Cell-Arrays oder Structs arbeiten.
Natürlich kannst du die einzelnen Variablen durchgehen und diese wieder "zurechtstutzen", aber da wären wieder bei komplizierten/schwer debugbaren eval-Konstrukten .
Grüße
Chris
_________________
--> Kapieren statt Kopieren <---
____________________________________________________
FAQs sind dazu da, FAQs zu beantworten
Richtig fragen!
|
|
|
Slamdunker23 |
Themenstarter

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 16:48
Titel:
|
 |
Hallo Chris.
Die Werte lese ich aus einem MAT-File in den Workspace.
Somit liegen sie als 1x1 structure vor.
Ist das ein besserer Ausgangspunkt?
Gruß, Daniel
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2014, 21:44
Titel:
|
 |
|
|
Slamdunker23 |
Themenstarter

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 15:42
Titel:
|
 |
Super. Ich bin nun soweit, dass ich mein Output-Structure erzeugt habe.
Das structure besteht aus 300 Variablen und jede Variable hat 12000 Werte.
Ich habe nun mehrere Möglichkeiten versucht, dieses Structure als xls oder txt (csv) Datei zu speichern.
Dazu habe ich versucht, das structure in ein Cell-Array umzuwandeln, doch da stürzt Matlab jedes Mal ab. Ich denke, dass das Array zu groß ist für meine Hardware
Gibt es eine direkte Möglichkeit das Structure umzuwandeln oder wie würdet ihr es exportieren?
Vielen Dank!
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2014, 19:41
Titel:
|
 |
Was hast Du versucht? Wenn alle Vektoren gleich lang sind, sollte »struct2cell« mit »cell2mat« eigentlich funktionieren. Das dann als csv zu schrieben, ist dann nur noch eine Kleinigkeit.
|
|
|
Slamdunker23 |
Themenstarter

Forum-Century
|
 |
Beiträge: 101
|
 |
|
 |
Anmeldedatum: 03.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 29.01.2014, 15:32
Titel:
|
 |
Hallo. Hier mal der Code:
In der for-Schleife bricht Matlab zusammen.
Vielen Dank für eure Hilfe!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 29.01.2014, 17:02
Titel:
|
 |
Hallo,
num2cell ist bei großen Datenmengen keine gute Idee, da somit ein Zeiger auf jede Zahl erzeugt wird (und die Zeiger letztlich mehr Speicherplatz benötigten als die Zahlen an sich).
Hast du es mal wie von Sirius vorgeschlagen mit struct2cell und cell2mat versucht?
Grüße,
Harald
|
|
|
|
|
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.
|
|