Jetzt ist mein Problem, dass sich der handlename, sprich h1 und h2, nicht so einfach zu erstellen sind. Wie bekomme ich es hin, dass LINKS der 'Gleichung' sich der Name ändert, sprich mit der Schleife 'mitläuft'?
funktioniert z.B. nicht wie gewünscht, denn wenn man sich das ganze dann im Workspace anschaut, sieht man, dass Matlab nicht wie gewünscht :
h1 1x1 Axes
h2 1x1 Axes
erzeugt, sondern:
h 1x2 Axes
Sprich es werden in h so alle axes gespeichert. Genau das will ich ja eben nicht!
Wenn man komplizierte Methoden verwendet, um Variablen-Namen dynamisch während der Laufzeit zu erzeugen, benötigt man noch kompliziertere um später darauf zuzugreifen. Zudem bremsen dynamisch erzeugte Variablen Matlab ganz massiv aus - das kann ein Faktor 100 in der Laufzeit sein.
Bei der Programmierung ist eine geschickte Wahl der Representation der Daten sehr wichtig. Daten gleichen Typs, die gemeinsame Eigenschaften haben, sind in einem Array einfach wirklich gut aufgehoben. Man kann das dann sehr leicht erweitern indem man einfach die Schleife länger laufen lässt. Und später im Programm muss man sich nicht merken, wieviele Objekte erzeugt worden sind, sondern kann dies einfach mit
numel
herausfinden.
Deshalb findet man diesen Punkt auch in der Matlab-FAQ:
http://matlab.wikia.com/wiki/FAQ#Ho......2C....2CA10_in_a_loop.3F
Das Thema wird jede Woche mehrfach im Forum besprochen und immer wieder darauf hingewiesen, dass das Verstecken von Indices im Namen der Variablen ein schlechter Programmierstil ist. Auch wenn das in den ersten Minuten irgendwelche Vorteile zu haben scheint, werden die Schwierigkeiten nicht lange auf sich warten lassen. Also:
Vielen Dank für eure sehr hilfreichen Antworten. Ich habe es beherzigt und ihr habt beide absolut Recht. Was ich da vorhatte, war großer Mumpitz.
Grüße
Max
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
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.