Verfasst am: 12.06.2012, 16:57
Titel: Re: In der m-File bestimmte Zeilen Code ausblenden
Hallo NNLab,
Die schönste, sicherste und effizienteste Art, diese Zeilen so zu ändern, dass sie nicht mehr sichtbar sind, ist die Löschung. Die Methode Variablen dynamisch per EVAL zu erzeugen macht das Debuggen schwierig bis unmöglich und das Zugriff auf die Variablen während der Laufzeit wird auch heftig gebremst. Matlab erzeugt nämlich beim Parsen des M-Files eine statische Liste der Variablen, so dass z.B. in Schleifen schnell darauf zugegriffenwerden kann (Stichwort: JIT-Acceleration). Die dynamisch erzeugten Variablen müssen dagegen in einer eigenständigen Liste gesammelt werden. Sowie eine solche Liste existiert, muss auch beim Aufruf aller Unterfunktionen (also auch aller built-in Matlab-Befehle) geprüft werden, ob einer der lokale Variablen Vorrang hat.
Deshalb ist es ein Regel ("good programming practice") immer darauf zu verzichten komplizierte Methoden zu verwenden um Indices und andere informationen-tragende Strings in den Namen der Variablen zu packen. Es ist deutlich effizienter und übersichtlicher, Indices als Indices zu verwenden (z.B. in cells), und andere Strings entweder als Felder eines Structs oder als Feldnamen des Structs zu speichern.
Per EVAL Index-Werte in den Namen einzufügen ist in etwa so praktisch wie das Körpergewicht eines Menschen in seinen Namen aufzunehmen. Der Vorteil ist offensichtlich: Man kann beim Einwohnermeldeamt anrufen um sein gewicht zu erfahren und muss sich nicht mühsam auf eine Waage stellen. Die Nachteile wären dagegen die täglichen Namensänderungen, die man wieder allen Freunden und Bekannten mitteilen muss.
Du hast es also genau richtig erkannt: EVAL macht das Programm ohne Not unübersichtlich. Also ist die Wahl einer anderen Daten-Repräsentation eine gute Lösung.
wie im letzten Thread schon gesagt gebe ich dir vollkommen recht.
Meine m-file zur Datenerzeugung ist fertig, hässlich aber fertig.
Ich mache mich nun dran etwas mit neuronalen Netzen zu untersuchen.
Sobald auch das fertig ist und ich mit dem Schreiben der Diplomarbeit auch gut vorankomme,
verspreche ich dir das ich mich um diese EVAL Sache kümmere.
kannst auch im cellmode arbeiten mit %% grenst du dann die cells ab. die kann man dann auch zuklappen
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.