|
|
Variablen Global oder in den "base" Workspace setz |
|
Felix16 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2020, 13:30
Titel: Variablen Global oder in den "base" Workspace setz
|
|
Hallo,
ich wollte mal nachfragen wo genau denn in Matlab der Unterschied liegt, wenn ich eine Variable global setzte oder nur in den "base" Workspace? Beispielsweise hol ich mir eine Variable in einer function in meinem GUI Skript mithilfe von Eingabefeldern heraus und möchte mit dieser in einer anderen Funktion im selben Skript weiterarbeiten. Welche Möglichkeiten gibt es da?
Lg, Felix
|
|
|
|
|
Felix16 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2020, 13:34
Titel:
|
|
Hier meine 2 Überlegungen dazu:
function freqrange1_min_Callback(~, ~, handles)
frange1_min_val = str2double(char(get(handles.freqrange1_min, 'String')));
assignin('base','frange1_min', frange1_min_val);
function setGlobalfrange1_min(frange1_min_val)
global frange1_min
frange1_min = frange1_min_val;
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.04.2020, 13:51
Titel:
|
|
Hallo,
global: überall verwendbar, wo die entsprechende Variable als global definiert ist.
base: ein bestimmter Workspace, auf den man von außen über evalin / assignin zugreifen kann.
Aber: empfehlenswert ist weder der eine noch der andere Ansatz, weil die Variablen nicht direkt der GUI zugeordnet sind. Besser:
https://www.mathworks.com/help/matl.....data-among-callbacks.html
Mein bevorzugter Weg ist Application Data (setappdata / getappdata). Allerdings nur, sofern du mit GUIDE arbeitest, so wie dein Code aussieht.
Der wirklich empfehlenswerte Weg ist App Designer. Dort werden zusätzliche Informationen als eigene Eigenschaften (properties) der App abgelegt.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Felix16 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2020, 14:36
Titel:
|
|
Danke für die Antwort,
wenn ich also in App Designer die Variable einlese kann ich direkt in dem ganzen Skript der App damit arbeiten ohne zusätzlichen Aufwand?
Lg, Felix
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.04.2020, 14:42
Titel:
|
|
Hallo,
ja. Eigene Eigenschaft
myProp
anlegen, an einer Stelle über
app.myProp = ...
belegen und dann an jeder anderen Stelle mit
app.myProp
abrufen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Felix16 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2020, 16:14
Titel:
|
|
In der Matlab Hilfe stehts ja so drinnen:
setappdata(obj,name,val);
Ist dann mein Object der Tag des Feldes bzw die Benennung der Funktion des Eingabefeldes? Also würde das dann folgendermaßen aussehen?
function freqrange1_min_Callback(~, ~, handles)
frange1_min_val = str2double(char(get(handles.freqrange1_min, 'String')));
setappdata (freqrange1_min_Callback, frange1_min, frange1_min_val);
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.04.2020, 16:19
Titel:
|
|
Hallo,
das erste Argument muss ein Handle auf ein Objekt sein, das zweite Argument muss eine Zeichenkette sein, also eher:
Wenn du das später wieder abfragen willst:
Das gilt aber wie gesagt für GUIDE. Eben hast du zu App Designer gefragt, da ist die Vorgehensweise wie gezeigt anders (und deutlich einfacher).
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Felix16 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2020, 16:33
Titel:
|
|
Mir geht der Sinn des Objects nicht ganz ein. Erstelle ich das erst mit setappdata oder existiert dieses bereits davor?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.04.2020, 16:42
Titel:
|
|
Hallo,
in dem Objekt werden die Daten gespeichert. Das muss bereits vorher existieren.
Üblicherweise verwendet man die Figure, bei GUIDE standardmäßig handles.figure1.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Felix16 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2020, 16:56
Titel:
|
|
Danke, ich hoff ich habs jetzt verstanden..
Also erstelle ich nur eine Art Zwischenspeicher mithilfe von figure, damit ich in diesen jederzeit Variablen speichern kann um später wieder darauf zugreifen zu können?
Lg, Felix
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.04.2020, 19:31
Titel:
|
|
Ja, genau.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
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.
|
|