
matlab gui问题
您好,非常感谢您解答了我matlabgui弹出新窗口的问题,很有用。有一个新问题想请教一下:程序想完成如下功能c=a+b或a/b,其中选中radiobutton1时c=a...
您好,非常感谢您解答了我matlab gui弹出新窗口的问题,很有用。有一个新问题想请教一下:程序想完成如下功能c=a+b或a/b,其中选中radiobutton1时c=a+b,选中radiobutton2时c=a/b.还设置了一个checkbox,在选中它时,结果为d=c+a,pushbutton程序如下:
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)
a=get(handles.edit1,'String');
b=get(handles.edit2,'String');
if (get(handles.radiobutton1,'Value')==1)
total=str2num(a)+str2num(b);
else
total=str2num(a)/str2num(b);
end
c=num2str(total);
set(handles.edit3,'String',c)
guidata(hObject, handles);
if (get(handles.checkbox1,'Value')==1)
total=str2num(c)+str2num(a);
d=num2str(total);
set(handles.edit3,'String',d)
end
guidata(hObject, handles);
此程序可在输入a,b后将结果显示在原窗口中,执行无误(可感觉还是比较别扭)。
请问此时如何弹出新窗口显示结果?( matlab7.1,新窗口为untitled3.fig,结果显示在一个edit text中)
什么都不懂,麻烦您了!
非常感谢! 展开
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)
a=get(handles.edit1,'String');
b=get(handles.edit2,'String');
if (get(handles.radiobutton1,'Value')==1)
total=str2num(a)+str2num(b);
else
total=str2num(a)/str2num(b);
end
c=num2str(total);
set(handles.edit3,'String',c)
guidata(hObject, handles);
if (get(handles.checkbox1,'Value')==1)
total=str2num(c)+str2num(a);
d=num2str(total);
set(handles.edit3,'String',d)
end
guidata(hObject, handles);
此程序可在输入a,b后将结果显示在原窗口中,执行无误(可感觉还是比较别扭)。
请问此时如何弹出新窗口显示结果?( matlab7.1,新窗口为untitled3.fig,结果显示在一个edit text中)
什么都不懂,麻烦您了!
非常感谢! 展开
3个回答
展开全部
需要增加一个按钮来刷新图像
在滚动条和下拉菜单的callback里读取值,在按钮的callback里画图
---------------
对,在GUI对应的.m文件中修改callback函数,在使用滚动条和下拉菜单的过程中实际上是改变了对象的属性,通过get(hObject,'Value');一类的语句可得到这种改变。
---------------
我建议你找本书看一下,GUI的编程还是有些复杂的。
首先matlab里滚动条和下拉菜单都是一个对象,每一个回调函数都会带着一个hObject的输入,是这个对象的句柄,matlab里函数get用来获得对象的属性值
get(hObject,'Value');
即获取该对象的'Value'属性,比如滚动条,'Value'即代表滑块的位置(默认滑块两端分别是0和1,'Value'是一个[0,1]的实数)。
在滚动条和下拉菜单的callback里读取值,在按钮的callback里画图
---------------
对,在GUI对应的.m文件中修改callback函数,在使用滚动条和下拉菜单的过程中实际上是改变了对象的属性,通过get(hObject,'Value');一类的语句可得到这种改变。
---------------
我建议你找本书看一下,GUI的编程还是有些复杂的。
首先matlab里滚动条和下拉菜单都是一个对象,每一个回调函数都会带着一个hObject的输入,是这个对象的句柄,matlab里函数get用来获得对象的属性值
get(hObject,'Value');
即获取该对象的'Value'属性,比如滚动条,'Value'即代表滑块的位置(默认滑块两端分别是0和1,'Value'是一个[0,1]的实数)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您好,你可以试试以下的代码:
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)
open('untitled3.fig');
new_fig = guihandles;
a=get(handles.edit1,'String');
b=get(handles.edit2,'String');
if (get(handles.radiobutton1,'Value')==1)
total=str2num(a)+str2num(b);
else
total=str2num(a)/str2num(b);
end
c=num2str(total);
set(new_fig.edit3,'String',c)
guidata(hObject, handles);
if (get(handles.checkbox1,'Value')==1)
total=str2num(c)+str2num(a);
d=num2str(total);
set(new_fig.edit3,'String',d)
end
guidata(hObject, handles);
因为这是的操作是对untitled3.fig中的元素进行的,用handles是对原界面内的元素进行的,你先试试吧。
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)
open('untitled3.fig');
new_fig = guihandles;
a=get(handles.edit1,'String');
b=get(handles.edit2,'String');
if (get(handles.radiobutton1,'Value')==1)
total=str2num(a)+str2num(b);
else
total=str2num(a)/str2num(b);
end
c=num2str(total);
set(new_fig.edit3,'String',c)
guidata(hObject, handles);
if (get(handles.checkbox1,'Value')==1)
total=str2num(c)+str2num(a);
d=num2str(total);
set(new_fig.edit3,'String',d)
end
guidata(hObject, handles);
因为这是的操作是对untitled3.fig中的元素进行的,用handles是对原界面内的元素进行的,你先试试吧。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
新一个 gui 啊
以新建的gui为parent建立一个edit显示
用uersdata传递数据
以新建的gui为parent建立一个edit显示
用uersdata传递数据
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询