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中)
什么都不懂,麻烦您了!
非常感谢!
展开
 我来答
brisrb
2011-01-17 · TA获得超过1417个赞
知道小有建树答主
回答量:1041
采纳率:0%
帮助的人:306万
展开全部
需要增加一个按钮来刷新图像
在滚动条和下拉菜单的callback里读取值,在按钮的callback里画图
---------------
对,在GUI对应的.m文件中修改callback函数,在使用滚动条和下拉菜单的过程中实际上是改变了对象的属性,通过get(hObject,'Value');一类的语句可得到这种改变。
---------------
我建议你找本书看一下,GUI的编程还是有些复杂的。
首先matlab里滚动条和下拉菜单都是一个对象,每一个回调函数都会带着一个hObject的输入,是这个对象的句柄,matlab里函数get用来获得对象的属性值
get(hObject,'Value');
即获取该对象的'Value'属性,比如滚动条,'Value'即代表滑块的位置(默认滑块两端分别是0和1,'Value'是一个[0,1]的实数)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linyb05
2011-01-16
知道答主
回答量:8
采纳率:0%
帮助的人:7.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是对原界面内的元素进行的,你先试试吧。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mychunse
2011-01-17
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
新一个 gui 啊
以新建的gui为parent建立一个edit显示
用uersdata传递数据
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式