필터 지우기
필터 지우기

Save variables in gui

조회 수: 7 (최근 30일)
Fiboehh
Fiboehh 2011년 5월 6일
댓글: Jan 2018년 2월 13일
Dear, i'm strubling with the problem to save variables in a gui. I have an edit text with nothing in and when you type a number in it, i have to use this double in another widget or another function. I wrote http://matlab.wikia.com/wiki/FAQ?cb=4562#How_can_I_share_data_between_callback_functions_in_my_GUI.3F and tried the getappdata manner. So my callback function is like:
function ls_Callback(hObject, eventdata, handles)
% hObject handle to ls (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
ls = str2double(get(hObject,'String')) %to convert to double
ls = getappdata(handles.ls ,'ls') % so i can save it?
save(sino,'ls') % gives fualt...
and to use it in another function i tried
sinopara = load(sino);
ls = sinopara.ls;
But it doesnt work, please please a understandeble solution :) thx in advance

채택된 답변

Walter Roberson
Walter Roberson 2011년 5월 6일
function ls_Callback(hObject, eventdata, handles)
% hObject handle to ls (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
ls = str2double(get(hObject,'String')) %to convert to double
handles.ls = ls;
guidata(handles);
Then in any other callback or function that already had handles being passed to it, handles.ls would have the value. If you need the value someplace that does not have handles being passed to it, then
handles = guidata(YourFigureNumber);
and then use handles.ls
  댓글 수: 2
Walter Roberson
Walter Roberson 2011년 5월 6일
By the way: the first thing that has to be passed to save() is a file name, but in your sample code you are passing an undefined variable.
save('sino','ls')
would have gotten you further, but your getappdata() call is incorrect so you probably would have ended up saving an empty matrix.
Jan
Jan 2018년 2월 13일
@Walter: Replace:
guidata(handles)
by
guidata(hObject, handles)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Fiboehh
Fiboehh 2011년 5월 7일
I was too fast to accept the answer. I have a fault message when i try:
function ls_Callback(hObject, eventdata, handles)
% hObject handle to ls (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
ls = str2double(get(hObject,'String')) %to convert to double
handles.ls = ls;
guidata(handles);
this is the error message:
??? Error using ==> guidata at 89
H must be the handle to a figure or figure descendent.
Error in ==> DA>ls_Callback at 444
guidata(handles);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> DA at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)DA('ls_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
  댓글 수: 1
Jan
Jan 2018년 2월 13일
Replace:
guidata(handles)
by
guidata(hObject, handles)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by