WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

In der m-File bestimmte Zeilen Code ausblenden

 

NNLab
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 11.10.11
Wohnort: Frankfurt am Main
Version: 7.12.0
     Beitrag Verfasst am: 12.06.2012, 15:29     Titel: In der m-File bestimmte Zeilen Code ausblenden
  Antworten mit Zitat      
Hallo Freunde,

ich würde gerne bestimmte Zeilen in meinem Code ausblenden können da diese meinen Code sehr in die Länge ziehen.

Code:

eval(['S_n_', idx, ul, name, '= S_n;']);
eval(['S_h_', idx, ul, name, '= S_h;']);
eval(['S_q_', idx, ul, name, '= S_q;']);
eval(['S_f_', idx, ul, name, '= S_f;']);
eval(['S_w_', idx, ul, name, '= S_w;']);


Diese Zeilen sind eigentlich für nichts gut außer meinen Variablen Namen zu geben.
Erhoffe mir damit mehr Übersicht. Also falls ihr ne Idee habt.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 12.06.2012, 16:02     Titel:
  Antworten mit Zitat      
In eine zweite Datei packen und diese dann von der ersten Datein (AKA main) rufen? Also z.B. init.m

andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.06.2012, 16:57     Titel: Re: In der m-File bestimmte Zeilen Code ausblenden
  Antworten mit Zitat      
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.

Gruß, Jan74.3
Private Nachricht senden Benutzer-Profile anzeigen
 
NNLab
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 11.10.11
Wohnort: Frankfurt am Main
Version: 7.12.0
     Beitrag Verfasst am: 12.06.2012, 17:21     Titel:
  Antworten mit Zitat      
Hallo 74,3,

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.

Gruß,

85,3

@Andreas,

vielen dank, werde ich mir angucken.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 12.06.2012, 17:36     Titel:
  Antworten mit Zitat      
kannst auch im cellmode arbeiten mit %% grenst du dann die cells ab. die kann man dann auch zuklappen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.