guidata doesn't save my data, why?
Ältere Kommentare anzeigen
I have a GUI made in GUIDE. I need to store some data within functions and they must be reachable by other callbacks. I am using guidata like the following:
function MyFunction(input1,input2,...,inputN)
MyData = CalculateMyData(inputs);
handles.DataToSave = MyData;
guidata(gcf(),handles)
end
Later in another Callback I'm trying to get back the data and save it to a file like the following:
function SaveData(handles)
SavedData = handles.DataToSave;
dlmwrite(MyFile,SavedData,'\t')
end
However, the field DataToSave no longer exists. I know that the handles and the guidata are not the same structure, therefore I tried the following code as well:
function SaveData(handles)
MyGUIData = guidata(gcf());
SavedData = MyGUIData.DataToSave;
dlmwrite(MyFile,SavedData,'\t');
end
Unfortunately this code does not work either. How can I solve this problem? Any help is appreciated. László
Akzeptierte Antwort
Weitere Antworten (3)
László Arany
am 5 Jul. 2012
0 Stimmen
I have a similar problem. But I do not understand the cause
Sean de Wolski
am 13 Aug. 2012
0 Stimmen
I am guessing that the use of gcf() is what is making this not work. If the figure's HandleVisibility is 'off' or 'callback', gcf() will create a new figure to be the current figure.
To fix it, rather than using gcf, use handles.( Tag of your figure ).
Kategorien
Mehr zu Interactive Control and Callbacks finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!