MATLAB GUI设计复数的计算程序时,怎么把内部程序计算的值显示到界面上?

MATLAB GUI界面如何实现最大化显示
[问题点数:20分]
本版专家分:0
CSDN今日推荐
本版专家分:0
本版专家分:112
本版专家分:112
本版专家分:0
结帖率 100%
匿名用户不能发表回复!|
CSDN今日推荐不积跬步,无以至千里!
MATLAB GUI界面之间的数据传递
M文件中内的每个Callback都可以视为一个独立的可执行的接口,因此,任一个Callback触发后所执行的运算值若要在其他Callback中使用,就无法与MATLAB工作空间内的变量继续执行操作,也就是说每个Callback之间无法直接做沟通操作,因此变量的传递会有问题。主要的几种数据传递方式主要有:
(1)宣告为全局变量
将欲传递的变量在传递双方的Callback位置中都设置为全局变量,就可以直接在任一方的Callback中调用。这种方式是最简单的操作方式,但是当GUI全局变量太多时,在执行上就可能造成混乱。
(2)应用对象的userdata属性
通过对象的userdata属性可以直接进行各个Callback之间的数据存取操作。首先必须先将数据存储到一个特定的对象中,假设该对象的句柄值为uihandle,需要存储的数据为value,将输入以下程序即可:
set('uihandle','UserData',value);
此时,value数据已经存储到句柄为uihandle的对象内,在执行过程中若要取回该变量就可以通过以下方式在任一Callback中获取该值。
value=get('uihandle','UserData');
使用这种方式在操作上固然简单方便,但是每一个对象仅能存取一个变量值,因此当同一对像存储两次变量时,先前的变量值就会被覆盖掉,这样对于复杂的操作会造成诸多不便,因此一般都是用Userdata存取简单的数据。
(3)应用setappdata,getappdata与rmappdata
使用setappdata,getappdata与rmappdata函数进行数据传递是最用弹性的,此种方式在使用上非常类似UserData属性的操作,但它克服了UserData的缺点,是一个对象可以存取多个变量,因此会比UserData属性在操作上更具有弹性和数据安全性。
用法如下:
setappdata(uihandle,'VariableName',vaule);
value=getappdata(uihandle,'VariableName');
rmappdata(uihandle,'VariableName');
另外一种用法是结合handles结构与guidata函数,虽然在操作上非常简单,但是当变量过多时会使GUI在程序上变得比较复杂,日后程序排错时可能比较费时,因此不推荐使用。
使用方式如下:
如果在对象的Callback中存取变量值到VARdata字段中,使用如下程序:
handles.VARdata=A;%将A存放到handles的VARdata字段中去
guidata(hObject,handles);%将新的handles值存储起来
如果在另一个Callback中使用变量A,使用如下程序:
A=handles.VAR
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!当前位置:
&Matlab之gui设计-如何将计算结果写入文本框?
Matlab之gui设计-如何将计算结果写入文本框?
请问如何将Design()中的计算结果写到data_out里面,即图中的等待设计计算区域?
界面图和程序段所示。
刚学MATLAB,请指点一下。
主程序段如下CODE:%初始化根窗体& &
set(gcf,'Units','pixels','position' ,[185 50 860 655],'name', '设计计算',...& &
& & 'numbertitle', 'off', 'Tag', 'dsp');& &
set(gcf, 'defaultuicontrolfontsize' ,12);& &
set(gcf, 'defaultuicontrolfontname' , ' 隶书 ' );&&
%添加组件& &
%设计参数输入区域
labelhead1 = uicontrol(gcf,'Style', 'text', 'String', '','Position', [29 80 125 525],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);&&
labelhead11 = uicontrol(gcf,'Style', 'text', 'String', '设计参数输入','Position', [30 610 120 20],...& &
& & 'BackgroundColor', [.8 .8 .8], 'FontSize', 14);& &
%设计结果输出区域& &
labelout = uicontrol(gcf,'Style', 'text', 'String', '设计结果输出','Position', [530 610 120 20],...& &
& & 'BackgroundColor', [.8 .8 .8], 'FontSize', 14);& &
data_out = uicontrol(gcf,'Style', 'edit', 'String', '等待设计计算','Position', [328 80 505 525],...
& & 'BackgroundColor', [.6 .7 .9],'FontSize', 10);&&
%设计参数输入
% 制冷量Qo
label_Qo = uicontrol(gcf,'Style', 'text', 'String', '制冷量','Position', [30 570 60 20],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);& &
data_Qo = uicontrol(gcf,'Style', 'edit', 'String', '10','Position', [30 555 60 20], 'FontSize', 12);&&
label_Qo = uicontrol(gcf,'Style', 'text', 'String', 'kW','Position', [90 555 25 18],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);& &
% 热源温度th
label_th = uicontrol(gcf,'Style', 'text', 'String', '热源温度','Position', [30 530 70 20],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);& &
data_th = uicontrol(gcf,'Style', 'edit', 'String', '85','Position', [30 515 60 20], 'FontSize', 12);
label_th = uicontrol(gcf,'Style', 'text', 'String', '℃','Position', [90 515 18 17],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);&&
% 冷冻水进口温度tw
label_tw = uicontrol('Style', 'text', 'String', '冷却水进口温度','Position', [30 490 120 20],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);& &
data_tw = uicontrol(gcf,'Style', 'edit', 'String', '32','Position', [30 475 60 20], 'FontSize', 12);
label_tw = uicontrol(gcf,'Style', 'text', 'String', '℃','Position', [90 475 18 17],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);&&
% 冷冻水出口温度tc1
label_tc1 = uicontrol(gcf,'Style', 'text', 'String', '冷冻水进口温度','Position', [30 450 120 20],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);& &
data_tc1 = uicontrol(gcf,'Style', 'edit', 'String', '11','Position', [30 435 60 20], 'FontSize', 12);&&
label_tc1 = uicontrol(gcf,'Style', 'text', 'String', '℃','Position', [90 435 18 17],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);&&
% 冷却水进口温度tc2
label_tc2 = uicontrol(gcf,'Style', 'text', 'String', '冷冻水出口温度','Position', [30 410 100 20],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);& &
data_tc2 = uicontrol(gcf,'Style', 'edit', 'String', '8','Position', [30 395 60 20], 'FontSize', 12);&&
label_tc2 = uicontrol(gcf,'Style', 'text', 'String', '℃','Position', [90 395 18 17],...& &
& & 'BackgroundColor', [.5 .6 .6], 'FontSize', 12);&&
%用于计算的按钮& &
CalculateH = uicontrol(gcf,'Style', 'pushbutton', 'String', 'Calculate',...& &
& & 'Position', [125 30 70 30], 'FontSize', 10);
%设置回叫函数& &
set(CalculateH,'Callback', 'Design(data_Qo,data_th,data_tw,data_tc1,data_tc2)');
Design(data_Qo,data_th,data_tw,data_tc1,data_tc2);&&示例的回调函数如下CODE:function Result=Design(data_Qo,data_th,data_tw,data_tc1,data_tc2)
Qo=str2num(get(data_Qo,'string'));
th=str2num(get(data_th,'string'));
tw=str2num(get(data_tw,'string'));
tc1=str2num(get(data_tc1,'string'));
tc2=str2num(get(data_tc2,'string'));&&
Result=Qo+th+tw+tc1+tc2;[ Last edited by hsli on
at 18:24 ]
自己顶一下!
输出至少要求两排,如示例的回调函数中的tc2和Result一起同时显示在文本框中。
以解决,谢谢各位围观!
同学,你真是a q,就我围观了
将结果存储到一个string的变量中(比如str),然后设置“等待计算结果”,假设“等待计算结果”这个控件的名字是result,那么就是set(handles.result,'string',str),
不得不说你这样写界面好麻烦啊
24小时热帖
下载小木虫APP
与700万科研达人随时交流Matlab 将计算的值显示在界面上_百度知道
Matlab 将计算的值显示在界面上
% --- Executes on button press in openimage.
function openimage_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile( ...
{'*.*.*.*.jpeg', 'Image Files (*.bmp, *.jpg, *.png,*.jpeg)'; ...
'*.*...
我有更好的答案
有多种显示的方式,比如使用fprintf()或者disp()个人喜欢用fprintf(),输出可以更人性化一些比如:y = [1 3 2 4 7 9 10 2 3];t = [2 3 6 10 12 17 18 22 24];Mean_y = mean(y);Var_y = var(y);fprintf('Mean_y=%f, Var_y=%f\n', Mean_y, Var_y); & % 按照格式化文本设定打印disp(Mean_y); & &% 直接打印Mean_y的值运行后在命令窗口显示为
采纳率:83%
来自团队:
你说的界面指什么,plot画出的图?如果是指MATLAB figure的话可以用num2str转换成字符串再显示在图上,比如title([str(i),num2str(j+3),‘map']);,将变量j显示在标题上
只是自己编写的界面,不过已经解决了,谢谢
使用matlab中的GUIDE命令,可以很容易的建立GUI(图形用户界面)。参见:
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 设计复数的计算程序 的文章

 

随机推荐