将变量传递给另一个函数

时间:2014-03-01 15:23:57

标签: matlab function variables

如何将变量AbrowseBtn_Callback函数传递到runBtn_Callback函数?我需要点击运行按钮来生成结果,但下面的示例代码将自动生成结果而不点击按钮:

function browseBtn_Callback(hObject, eventdata, handles)
A = load('new2.txt');
runBtn_Callback(hObject, eventdata, handles, A);


function runBtn_Callback(hObject, eventdata, handles, A)
B = get(handles.edit1, 'String');
compare = strcmp(A,B);
if(compare == 1)
  set(handles.result, 'String', 'Correct', 'ForegroundColor', 'green');
else
  set(handles.result, 'String', 'Incorrect', 'ForegroundColor', 'red');
end

1 个答案:

答案 0 :(得分:1)

使用handles参数存储A作为图的属性。在此处阅读此选项以及其他选项:http://www.mathworks.com/help/matlab/ref/guidata.html

您需要做的另一件事是不直接从runBtn_Callback内调用browseBtn_Callback - 这就是它立即运行的原因。摆脱该行,然后只有在单击按钮时才会执行该功能。

function browseBtn_Callback(hObject, eventdata, handles)
handles.A = load('new2.txt');



function runBtn_Callback(hObject, eventdata, handles)
B = get(handles.edit1, 'String');
compare = strcmp(handles.A,B);
if(compare == 1)
  set(handles.result, 'String', 'Correct', 'ForegroundColor', 'green');
else
  set(handles.result, 'String', 'Incorrect', 'ForegroundColor', 'red');
end