|
|
Dynamischer Variablenname |
|
SuperUke |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 30.06.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.07.2007, 10:58
Titel: Dynamischer Variablenname
|
 |
Servus,
gibt es im MATLAB eine Möglichkeit, Variablennamen dynamisch zu erzeugen. Z.B in einer Schleife a la:
|
|
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 04.07.2007, 13:02
Titel: Variable Variablennamen
|
 |
Hallo SuperUke,
Das passt zu der Frage zum Ändern von Variablennamen: Auch hier gelingt das Kunststück mit assignin:
Kommentar:
Es genügt zu schreiben: "for k = 1:3", da der Default-Wert für die mittlere Zahl 1 ist.
'base' bezeichnet den allgemeinen Workspace; hier kann auch ein spezieller angegeben werden, siehe "assignin" in der Hilfe.
['variable_' num2str(k)] bewirkt, dass an den String 'variable_' derjenige String angehängt wird, der durch die Zahl k repräsentiert wird, m.a.W. die Zahl k muss mit num2str in den String 'k' umgewandelt werden.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.07.2007, 16:15
Titel:
|
 |
|
|
Michaela |

Forum-Century
|
 |
Beiträge: 239
|
 |
|
 |
Anmeldedatum: 12.07.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: bis 2007b
|
 |
|
|
 |
|
Verfasst am: 19.07.2007, 22:17
Titel:
|
 |
Wie ist das eigentlich mit der Rechenzeit? Eval ist ja vermutlich am langsamsten. Sind cell-arrays am vorteilhaftesten, oder kommt man sogar evtl. mit set('fieldname') für ein struct-array schneller hin?
Wie verhält sich assignin im Verhältnis zu cell-arrays. Würde mich über Erfahrungsberichte freuen.... ich kam noch nicht zum Ausprobieren.
|
|
|
joekey |

Forum-Century
|
 |
Beiträge: 169
|
 |
|
 |
Anmeldedatum: 03.04.08
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2011b
|
 |
|
|
 |
|
Verfasst am: 17.04.2008, 22:32
Titel:
|
 |
Hallo,
mich hätte interessiert ob man auch globale Variablen dynamisch erzeugen kann. Resp. ob man eine lokale Variable (zB. Char) in eine globale umwandeln kann, ohne dass inhalt verloren geht.
Falls ja, wie sind dann die schritte.
Danke Joe
|
|
|
Beijing10 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.05.2010, 13:43
Titel: Aufrufen Dynamische Variable
|
 |
Ich habe das Problem, dass ich nicht weiß, wie ich z.B. die Länge der erzeugten Variablen dann bestimme. (Außer natürlich explizit l=length(Group_B1) zu schreiben)
Sowas wie:
assignin ('base',['Group_B' num2str(i)],phiB(c:z, );
laenge=length('Group_B', num2str(i)]
funktioniert leider nicht.
Danke für die Hilfe
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.05.2010, 14:05
Titel:
|
 |
Hallo
dazu muss du mit EVALIN arbeiten:
|
|
|
JL12345 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.02.2013, 14:47
Titel:
|
 |
hallo zusammen
ich weiß das kommt etwas spät, passt aber noch zu dem Thema. Folgendes Problem. Ich möchte zu denm variablennamen auch noch den indizes in der Variable dynmisch verwalten.
also zum beispiel sowas wie
dass also der wert b der variable var_j an der stelli i zugewiesen wird
geht das irgendwie??
danke im Voraus
LGJL
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 13.02.2013, 16:21
Titel:
|
 |
Hallo
So was geht nicht mit ASSIGNIN.
Das würde zwar mit EVALIN gehen. Aber davon ist abzuraten, weil ist nicht debugbar ist und sehr schwer zu lesen/verstehen.
Besser wäre an dieser Stelle CELLs oder Dynamische Felder zu verwenden.
für CELL:
als Dynamische Felder
als evalin
|
|
|
JL12345 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.02.2013, 16:36
Titel:
|
 |
da ich das ganze dannach als zeitreihe plotten will hab ich mich für die evalin variante entschieden. Danke vielmals funktioniert super!!=)
LGJL
|
|
|
JL12345 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.02.2013, 16:40
Titel:
|
 |
sag mal kann mann bei evalin die ausgabe unterdrücken?
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 13.02.2013, 17:03
Titel:
|
 |
Strich Punkt im String-Ausdruck am Ende setzen
evalin('base',sprintf('var_%d(%d)=%d;',j,i,b))
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 14.02.2013, 23:13
Titel:
|
 |
Hallo JL12345,
Ich ratre ausdrücklich von EVAL, EVALIN und ASSIGNIN ab. Diese Methoden zur ferngesteuerten Erzeugung von Variablen macht Matlab langsam und das Debuggen und Warten des Codes unnötig kompliziert.
Man findet viele viele Details dazu im Forum.
Gruß, Jan
|
|
|
Samoth |

Forum-Fortgeschrittener
|
 |
Beiträge: 70
|
 |
|
 |
Anmeldedatum: 13.01.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 01.08.2016, 13:50
Titel: Aufsummieren
|
 |
Hallo,
funktioniert das Aufsummieren dynamischer Variablen dann mit evalin????
Gruß
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.08.2016, 14:44
Titel:
|
 |
Hallo,
man kann sicher mit dynamischen Variablen arbeiten und, je nachdem in welchem Workspace sie sich befinden, mit eval(in) arbeiten.
Ich würde es aber auf jeden Fall vermeiden, siehe die Vorposter, insbesondere
15.02.2013, 00:13
13.02.2013, 17:21 (Beispiel zur Vermeidung von evalin)
19.07.2007, 17:15
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|