我有一个脚本,它接收一堆数据并输出一个名为"结果"的结果矩阵。
我可以通过按钮来运行脚本,但是"结果"无处可寻......
我有第二个脚本使用"结果"进行进一步的分析,我希望GUI中的第二个按钮能够触发。
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
processFirstSet
processFirstSet是第一个脚本,但我不清楚如何从这里开始
答案 0 :(得分:1)
从脚本返回的内容将保留在GUI环境中,因此当脚本结束时,按钮调用将结束,并且返回数据"结果"将失去。
将其传递到下一个函数,同时留在GUI中并继续使用那里的数据(然后稍后将其保存)例如
function pushbutton3_Callback(hObject, eventdata, handles)
results = processFirstSet
processSecondSet(results)
%do something else
或使用assignin(例如)
导出到matlab工作区function pushbutton3_Callback(hObject, eventdata, handles)
results = processFirstSet;
export_name = 'my_data';
assignin('base',export_name,results);
正如我在评论中所说,这里有一些基本提示。 获取您的脚本,并通过创建一个新文件并使用此格式将其转换为函数(替换标有脚本的区域)。使用相同的名称firstStepFunction.m
保存它function [results] = firstStepFunction(c)
a = 1; %your script here
b = 7; %your script here
results = a+b+c; %your script here
end
然后,您可以通过键入firstStepFunction(2)从命令行运行此函数,它将作为ans返回10到工作区。 (c)函数名后面是函数参数,如果你不需要灵活处理你的函数,你可以把它留空,如果你只是将你的脚本复制到函数大纲中就可能出现这种情况。
如果现在在gui按钮函数中使用它,则需要将返回值结果(在示例中为10)分配给变量,否则它将丢失,例如:
results = firstStepFunction(2);
现在您将结果存储在按钮功能内的变量中。现在你可以像上面那样导出它,所以在这种情况下的整个例子(确保你保存了firstStepFunction)将是
function pushbutton3_Callback(hObject, eventdata, handles)
results = firstStepFunction(2);
export_name 'my_data';
assignin('base',export_name,results);