danke Harald für die Antwort, ich bin jetzt so gekommen dass der Name oder Vorname die ich eintippe wird in "ans" gespeichert aber ich möchte je eingetippte Name und Vorname in verschiedenen variabel speichern
ich hasse functionen, mit denen hier in matlab nicht klar kommen kann
Code:
function AgeDB = EingabeD()
f = figure;
set(f,'Position',[800150800750],'Color',[.4 .61],'MenuBar','none',...
'Name','IAV-SENT-Box Test Eingabedaten','Visible','off');
wie gesagt: du musst mit get-Befehlen die Informationen auslesen und dann wie gewünscht abspeichern. Sollen die Informationen in einer Datei gespeichert werden? Sollen sie beim nächsten Öffnen in der GUI eingetragen sein?
Je klarer die Problemstellung, desto klarer die Antwort.
Übrigens dürfte auch eine Suche im Forum bzw. Google helfen. Ähnliche Fragen gab es hier schon das eine oder andere Mal.
ich echt viel gesucht und auf mein Programmcode alle mögliche befehle implementiert
aber ohne Ergebnisse ich bin jetzt 3 tage mit der Sache und ich kriege das Problem nicht.
das Problem ist Simple, ich will einfach die lokale variable aus dem callbackfunction
rausholen und in matlab workspacefenster als irgend ein variable speichern
ich glaube meine frage ist ja klar und deutlich
wie ich gesagt habe, ich bin nur ein matlab bastler in der Zeit so ein profi bin ich nicht
ich echt viel gesucht und auf mein Programmcode alle mögliche befehle implementiert
Das hilft uns noch nicht beim Antworten: Wenn es "alle möglichen Befehle" waren, müssten ja auch die richtigen darunter gewesen sein. Bitte poste, welche Befehle Du probiert hast und was genau nicht wie gewünscht funktioniert hat.
Zitat:
ich will einfach die lokale variable aus dem callbackfunction
rausholen und in matlab workspacefenster als irgend ein variable speichern
Das "Rausholen" und ferngesteuert in irgendeinem Workspace (es geht ja nicht um das "Fenster" an sich, oder?) einfügen, ist grundsätzlich ein schlechter Programmier-Stil, denn dann kann man kaum noch nachvollziehen, woher ein Wert stammt und das Debuggen wird zum Horror.
Aber es geht:
Code:
function EingabeD_Callback(he,eventdata)
AgeDB = mat2str(get(he,'string')); % MAT2STR??? assignin('base', 'AgeDB', AgeDB);
end
Das
mat2str
sieht hier falsch aus: Du bekommst einen String aus dem UICONTROL, dann muss man nicht eine Matrix in einen String umwandeln. Vielleicht meinst Du:
Grundsätzlich ist aber -wie gesagt- die ferngesteuertze Erzeugung von Variablen richtig schlecht. Besser wäre es die benötigten Operationen gleich im Callback auszuführen oder von dort die Variable als Input für die auszuführende Funktion zur Verfügung zu stellen. Schaue Dir mal professionelle GUIs an, z.B. von einem Office: Die Berechnungen erfolgen dort auch direkt aus den GUIs, wenn man eine Zahl eingibt oder einen Button betätigt.
In den ApplicationData oder UserData der figure wären die Daten also besser aufgehoben als im Base-Workspace.
Gruß, Jan
Zuletzt bearbeitet von Jan S am 02.11.2016, 14:00, insgesamt einmal bearbeitet
das ist mein letzte versuch die ich gemacht habe
wenn ich schreibe "Command Window fenster" wo man die Ergebnisse sehen kann oder "Wokspace-fenster" wo man die Variabel speichern kann. ich meine matlab-Software-Oberfläsche.
Var1 = get(he,'string') end %wenn ich hier Breakpoints mache, was ich in Edit eintippe wird in Var1 gespeichert, laut Workspace-fenster
function Eingabe_he1_Callback(he1,EventData)
wenn ich kein Breakpoint mache wird kein Variabel gepeichert entweder Var1 oder Var2 Bzw. nicht auf Workspace-fenster
und meine Frage wie kann ich die beide Variabel Var1 und Var2 auf Workspace-fenster speichern.
das heisst die eingetippte string in edit (he und he1) möchte ich in Var1 und Var2 speichern
ich hoffe dass die Frage klar geworden ist.
und ich danke dir auf dein Verständnis
Es gibt das CommandWindow und den Workspace-Browser.
Wann sollen die Daten im Command-Window zugänglich sein? Während der Callback läuft oder wenn der Dialog geschlossen wird?
In letzterem Fall brauchst Du keine Callbacks für die EDIT-Felder, sondern für den Button zum Schließen:
Code:
function Data = AgeDB()% Die EventData haben hier nichts zu suchen [...] Siehe oben
hp = uicontrol('Style', 'pushbutton', 'String', 'Ok',...
'Position', [2504206030],...
'Callback', 'close');
% 'close' als string ist schlecht. Verwende lieber einen function-handle:
'Callback', @CloseCB);
Und die beiden Variablen sind im Struct "Data" gespeichert.
Zitat:
und meine Frage wie kann ich die beide Variabel Var1 und Var2 auf Workspace-fenster speichern.
Und genau das hatte ich Dir bereits mit
assignin
gezeigt, aber es ist grundsätzlöich eine schlechte Methode.
Gruß, Jan
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
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.