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

Variablen vor clear Befehl schützen

 

Jonas1234

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2017, 12:38     Titel: Variablen vor clear Befehl schützen
  Antworten mit Zitat      
Hey Leute,
ich habe ein Problem und zwar habe ich im wilden Eifer ein paar Skripte geschrieben, diese dutzende Male kopiert und in jedem nur ein paar Sachen geändert. Nun möchte ich alle hintereinander aufrufen. In dem Aufruf Skript definiere ich mir Variablen mit denen ich über if Bedingungen nur bestimmte Skripte aufrufen kann
Code:

Skript1=1;
Skrip2=0;
if Skript1==1
   Starte Skript_1
end
if Skript2==1
  Starte Skript_2
end
 

Das Problem ist, ich starte jedes Skript mit "clear", dann werden natürlich auch Skript1 und Skript2 gelöscht und Skript2 fehlt bei der 2. if Bedingung.

Frage: Kann man einzelne Variablen vor dem "clear" Befehl schützen? Also nicht durch clear außer, weil das würde nen paar Stunden dauern das in jedes Skript reinzukopieren. Sondern in meinem Aufrufskript? Oder habt ihr andere Ideen? Ist wohl so ein Fall von "am Anfang nicht überlegt und jetzt gemerkt dass man nen blöden Fehler drin hat"

Vielen Dank schonmal Smile


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2017, 13:45     Titel:
  Antworten mit Zitat      
Hallo,

meine Empfehlung wäre, generell die Code-Struktur zu überarbeiten. Eine Programmierrichtlinie ist nicht umsonst DIE (duplication is evil).

Zitat:
ein paar Skripte geschrieben, diese dutzende Male kopiert und in jedem nur ein paar Sachen geändert

Keine gute Idee. Stattdessen solltest du eine Funktion schreiben und das Verhalten über Eingabeparameter steuern.

Zitat:
Das Problem ist, ich starte jedes Skript mit "clear",

Das ist an sich unnötig. Ich habe eine Shortcut mit "clear, close all, clc", und die nutze ich nach Bedarf.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jonas1234

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2017, 16:02     Titel:
  Antworten mit Zitat      
Wie gesagt, mir ist schon bewusst, dass das nicht die feine englische Art war wie ich das gemacht habe. Ich stehe nur kurz vor Abschluss meiner Arbeit und möchte nicht alles umschreiben. Und ich habe auch nebenbei noch gut 40 Funktionen die ich zusätzlich nutze. Ich habe eigentlich am Anfang nicht vorgehabt alles auf einmal zu starten, da es dann aber immer umfangreicher wurde konnte ich es dann halt nicht ändern. Also danke für die Belehrung ohne Lösungsvorschlag.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2017, 16:28     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
dass das nicht die feine englische Art war wie ich das gemacht habe.

Das ist aus meiner Sicht noch untertrieben ;)

Zitat:
Also danke für die Belehrung ohne Lösungsvorschlag.

Ich habe dir natürlich einen Lösungsvorschlag gegeben, nämlich: mache es ordentlich. Wenn du hier vorab gefragt hättest, ob es sinnvoll ist, Dutzende ähnlicher Skripte zu erstellen, hätte ich dir die Antwort auch damals schon gegeben.

Mir ist schlicht und einfach keine direkte Lösung bekannt.
Wenn du nicht jedes dieser Skripte bearbeiten und "clear" durch einen geeigneten "clearvars"-Befehl ersetzen willst, sehe ich höchstens die Möglichkeit zu verhindern, dass clear überhaupt ausgeführt wird, indem du eine Variable clear oder Funktion clear anlegst, die höher auf dem Suchpfad liegt. Das ist allerdings eine absolute und (insbesondere für andere Leser) nicht zum Nachahmen empfehlenswerte Notlösung, und dann wird eben gar nichts gecleart.

Grüße,
Harald
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 - 2024 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.