|
|
Variablen vor clear Befehl schützen |
|
Jonas1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.02.2017, 12:38
Titel: Variablen vor clear Befehl schützen
|
|
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
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
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.02.2017, 13:45
Titel:
|
|
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
|
|
|
Jonas1234 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.02.2017, 16:02
Titel:
|
|
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
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.02.2017, 16:28
Titel:
|
|
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
|
|
|
|
|
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 - 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.
|
|