我想为我的脚本制作简单的GUI,我可以编辑参数值并运行该脚本。
我用2个按钮创建了示例scipt和GUI。我不能把脚本代码放到GUI代码中,我需要在更大的脚本上使用它。
所以,脚本代码:
number = 10;
variable(1:10) = NaN;
for i = 1:10;
variable(i) = i * number;
end
figure
plot(variable)
按钮代码,工作正常。 script是.m文件的名称,不是函数:
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
evalin('base','script')
但我不知道输入编辑按钮代码的内容如果我想在脚本中更改“数字”的值:
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
最后一点,有时当我尝试绘制更多图形时,一个图形会覆盖GUI图形,我只能看到按钮,但不能看到整个GUI。
感谢任何帮助。
答案 0 :(得分:0)
最后一段代码中给出的提示就足够了。
a = str2double(get(hObject,'String'));
这将在回调函数的堆栈中将输入值保存为double
。
为了将此值传递给调用者脚本的(基本)堆栈,请使用assignin
assignin('base', 'number', a)