|
|
File läuft nicht mehr wenn Variable auf 0 gesetzt wird |
|
Harald654 |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 01.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2016b
|
|
|
|
|
|
Verfasst am: 14.01.2017, 19:53
Titel: File läuft nicht mehr wenn Variable auf 0 gesetzt wird
|
|
Hallo,
ich habe ein kleines Problem beim Programmieren.
Und zwar funktioniert mein Skript nicht mehr, sobald ich eine Variable (welche vorher einen Wert ungleich Null hatte) auf Null setze.
Z.B wenn ich einfach nur ein paar Variablen vergebe:
Und nach ein oder mermaigen Ausführen eine Variable auf Null setze:
Funktioniert mein Programm nicht mehr.
Im Comand Window sieht man zwar das dass Skript aufgerufen wurde
aber es wird nichts ausgeführt oder gerechnet. Auch kann ich danach z.B. keine Brakepoints mehr setzen (diese werden sofort entfernt, ebenso schon vor dem Durchlaufen gesetzte Brakepoints).
Erst durch leichte abändern einer anderen Variable funktioniert das Skript dann wieder, z.B "g":
Ist das Normal bzw. wie kann ich das verhindern?
Gruß,
H.
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 14.01.2017, 20:50
Titel: Re: File läuft nicht mehr wenn Variable auf 0 gesetzt wird
|
|
Hallo Harald654,
Das ist eine lustige Frage!
Ohne das eigentliche Programm zu sehen, kann man nicht erraten, woran das liegt. Wahrscheinlich bekommst Du irgendwo eine Endlos-Schleife oder der Code läuft länger, als Du es erwartest. Zeige doch mal den relevanten Code, damit man Dir auch einen konkreten Ratschlag geben kann.
Das "close all" schließt alle anderen Fenster. Diese "vergiss erst mal alles, was Du bisher getan hast"-Header sind zwar unter Matlab-Anfängern verblüffend weit verbreitet, für richtige Programmierarbeit aber nur bedingt sinnvoll.
Gruß, Jan
|
|
|
Harald654 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 01.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2016b
|
|
|
|
|
|
Verfasst am: 14.01.2017, 21:04
Titel:
|
|
Hallo Jan S,
ja ist echt ne Blöde fragen
Da was ich gepostet habe war schon das eigentliche Programm, wenn ich das in ein Skript packe tritt immer mein obiges Problem auf.
(ich hab das Problem auch wenn ich "function" und "clear all" weg lasse)
In den Fall ist das wohl nicht normal bzw tritt bei euch nicht auf?
Gruß,
H.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.449
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.01.2017, 04:41
Titel:
|
|
Hallo,
Funktionen haben einen eigenen Workspace, in dem die Variablen leben.
Wenn die Funktion abgearbeitet ist, stehen nur noch die Variablen zur Verfügung, die du als Rückgabeargument zurück gibst.
Warum denn überhaupt eine Funktion? Es sieht so aus, als ob du da mit einem Skript besser dran wärst.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 15.01.2017, 14:11
Titel:
|
|
|
|
|
Hallo Harald654,
Zitat: |
(ich hab das Problem auch wenn ich "function" und "clear all" weg lasse) |
Da ist aber gar kein "celar all", das Du weglassen könntest. Meinst Du "close all"?
Zitat: |
Im Comand Window sieht man zwar das dass Skript aufgerufen wurde
aber es wird nichts ausgeführt oder gerechnet. |
Ich glaube, ich komme langsam dahinter, was das Problem ist: Die Funktion wird korrekt abgearbeitet. Dabei werden die Variablen im Innern der Funktion korrekt erzeugt, aber am Ende der Funktion wieder gelöscht. Das ist der Sinn von Funktionen. Du erwartest aber, dass die Variablen auch außerhalb definiert bleiben.
Die Fehlerbeschreibung "funktioniert nicht mehr" ist also irreführend. Es passiert nur etwas anderes, als Du erwartest, aber hier sind Deine Erwartungen falsch, nicht der Code.
Suche in der Dokumenation nach den Unterschieden zwischen "Script" und "Function".
Zitat: |
Da was ich gepostet habe war schon das eigentliche Programm, wenn ich das in ein Skript packe tritt immer mein obiges Problem auf. :( |
Das ist sehr seltsam. Dann beschreibe doch bitte nochmal genau, was das eigentliche Problem ist.
Zitat: |
Auch kann ich danach z.B. keine Brakepoints mehr setzen (diese werden sofort entfernt, ebenso schon vor dem Durchlaufen gesetzte Brakepoints). |
Hast Du vielleicht per
pcode
eine P-Version der Funktion erstellt? Gibt es doch ein "clear all" statt des bisher gezeigten "close all"? Falls ja: Bitte poste den Original-Code.
Gruß, Jan
|
|
|
Harald654 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 01.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2016b
|
|
|
|
|
|
Verfasst am: 15.01.2017, 17:59
Titel:
|
|
Hallo Jan S,
Puhhh..... hab mein Problem endlich gefunden
Da ich mehre PC verwende synchronisiere ich meine "Eigene Dateien" über Onedrive. Da dies persönliche Daten sind verschlüssel ich diese beim ablegen mittels Boxcryptor und das scheint nicht so recht mit Matlab zu harmonieren bzw. führt zu dem beschriebenen Problemen (welche wirklich teilweise konstrus sind, Variablen werden manchmal z.B. bei der Eingabe von "a = 3000" mit "a = 300" im Workspace abgelegt). Verschiebe ich die Daten/m-Files auf einen anderen Ordner auf meiner Festplatte treten die Probleme nicht mehr auf....
Da ich bisher noch nie Probleme mit der Verschlüsselung hatte (eig. bekommt Matlab die Daten ja auch unverschlüsselt übergeben) bin ich gar nicht auf die Idee gekommen das dies mein Problem sein könnte und sitz schon seit Tagen vor Matlab und wundere mich nur über dessen Verhalten...
Gruß,
H.
|
|
|
|
|
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.
|
|