Passing variables in a GUI

조회 수: 1 (최근 30일)
Matteo3
Matteo3 2014년 1월 30일
댓글: Matteo3 2014년 1월 30일
Hi, I have a problem in a GUI: I have need of two function (fun1 and fun2) which can be activated or not (due to the activation of two check buttons). If both are activated, i need to pass some variables from fun1 to fun2.
Once it run (one or both functions) i should pass the results to another function (grafic_fun) which plot the final results.
The problem is that the others functions (fun2 and grafic_fun) don't read the variables (handles.var) that I have defined within the functions fun1 and fun2 ; the matlab's error: ?? Reference to non-existent field 'var1'.
The code are something like this:
function pushbutton_run_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton_run (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if handles.check_fun1==1&&handles.check_fun2==1
fun1(hObject,handles)
fun2(hObject,handles)
grafic_fun(hObject,handles)
elseif handles.check_fun1==1&&handles.check_fun2==0
fun1(hObject,handles)
grafic_fun(hObject,handles)
else
fun2(hObject,handles)
grafic_fun(hObject,handles)
end
function fun1
...
handles.var1=...
handles.var2=...
guidata(hObject,handles)
function fun2
...
handles.var3=handles.var1+....
guidata(hObject,handles)
function grafic_fun(hObject,handles)
...
plot(x,handles.var)
guidata(hObject,handles)
thanks and sorry for my bad english!!
  댓글 수: 5
Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 30일
편집: Azzi Abdelmalek 2014년 1월 30일
Maybe, in your filename_openingFcn you should initialize
handles.var1=....
Matteo3
Matteo3 2014년 1월 30일
thanks!!

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

답변 (2개)

Amit
Amit 2014년 1월 30일
편집: Amit 2014년 1월 30일
This is because fun1 and fun2 do not know the existence of handles inside that function.
You can try something like this:
function [var1 var2] = fun1
function var3 = fun2(var1,var)

Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 30일
In your function arguments, add a variable handles. for example
function y=fcn1(a,b,handles)

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by