1楼:匿名用户
先看在一个gui界面内部的传递的数据
每一个控件的**函数头:
function myc_callback(hobject, eventdata, handles)
第一个参数是hobject,是跟这个callback所关联的控件的handles,在它自己的callback下,可以用代号-> hobject 来调用它。。不用管那么麻烦的概念,只用知道,控件自己的**函数调用自己的属性,只用hobject.属性名 就可以了(中间一点)。
第二个参数是matlab的保留参数
第三个handles,是这个gui界面的代号。可以通过它获取这个界面的所有信息。所以在控件a自己的**函数中,要获取或者设置别的控件的属性,就用 handles.
别的控件tag.属性
------------------------------
handles hobject 都是结构体。正常的编程概念。
handles格式是一个存放数据的缸。控件的handles是小缸,它的名字叫做hobject;gui界面的handle是一个大缸,并且这个缸名字也叫做handles;大缸里存放了所有的小缸和所有用户数据,你只需 handles.控件a的tag 就可以存取控件a的信息。
guide创建了一个大缸:结构体handles,handles包括了figure中所有控件的句柄,也包括figure的句柄
比如一个gui包括一个edit text, 一个panel,一个pop-up menu和一个push button,guide用每个控件的tag来命名handle,handles结构体内容如下:
figure1: 160.0011
edit1: 9.0020
uipanel1: 8.0017
popupmenu1: 7.0018
pushbutton1: 161.0011
output: 160.0011
那我怎么把自己计算出或者别的什么数据放到这个缸里呢?
^_^ 在任何地方
handles.自己的变量名 = 某些值 (其实也就是给结构体添加成员变量)
这样你就定义了自己的变量。
在任何地方
b=handles.自己的变量名 (结构名加点号来引用成员变量)
就可以得到这个变量值,同样也可以修改它。
别忘了使用
guidata(hobject, handles);(不用改,直接黏贴) 在函数末尾来保存你对handles和hobject的操作。(不然你自定义的变量就没了)
%guidata( 视窗句柄 , 全部句柄 ),如果视窗句柄位置不是视窗句柄,而是一个控件的句柄,那么这个控件的父视窗(parent figure)会被调用。所以guidata中的视窗句柄 可以是figure的句柄,也可以是figure内所包含的控件的句柄,不管是哪种情况,最终handles会和figure相关联。全部句柄即gui句柄handles
2. 怎么在控件callback函数体之外获取控件和用户自己的数据
gui界面的handles保存着所有控件的信息以及用户自己的数据,所以只要获取gui的handles就可以获取所有。
比如在自己定义的函数里获取handles,只需将handles作为参数传进去就可以
function my_function(handles)
% handles是gui的handles
%调用gui内任意一控件的信息
%get(handles.你控件的tag,'要获取的属性名');
temp=get(handles.my_popup,'value');
计时timer中:
% 在figure创建完成后创建 timer 对象,将handles传入callback函数
t = timer('timerf**', , 'executionmode', 'fixeddelay', 'period', 1.0);
% 设置窗口关闭的**函数
set(handles.figure1, 'deletef**', );
% 启动定时器
start(t);
%传入handles
function timercallback(obj, event, handles)
temp=get(handles.my_popup,'value');
end% 窗口关闭的响应函数-停止计时器
function deletef**(hobject, eventdata, t)
stop(t);
end3 在其他子函数或者非figure内控件的callback内保存用户数据到guidata
guide中, guide生成了一个包括所有gui句柄的结构体:handles,我们可以保存用户数据到其中(guide generates a handles structure that contains the gui's handles. you can add your own data to it)
guidata( 视窗句柄 , 全部句柄 )
如果视窗句柄位置不是视窗句柄,而是一个控件的句柄,那么这个控件的父视窗(parent figure)会被调用。所以guidata中的视窗句柄 可以是figure的句柄,也可以是figure内所包含的控件的句柄,不管是哪种情况,最终handles会和figure相关联。全部句柄即gui句柄handles
guidata(hobject, handles);
在figure控件callback之内调用guidata(hobject, handles);,hobject是控件的句柄。如果在其他子函数或者非figure控件的callback知中使用guidata保存数据,hobject就不再是控件句柄,会出错。所以我们要用figure的句柄代替hobject,即handles.
figure1
guidata( handles.figure1 , handles);
例如在上述计时器的callback函数中保存data: guidata( handles.figure1 , handles);
4、在不同gui之间传递数据
传入 那就来看打开一个gui界面时,传给他的参数有哪些。
function mygui_openingf**(hobject, eventdata, handles, varargin)
所有的启动参数都是通过varargin传到它的openingf**里面的。那启动参数可以是哪些呢?
1、figure,也就是窗口参数。
比如说position之类
例如:打开这个gui时,使用这个命令 mygui('position',[434 234 234 34])则表示打开窗口在这个位置;还有哪些可控属性可以查help。
2、自定义参数 。
如果传入的参数不是figure的属性(matlab查找不到你输入的属性名),则你输入的参数作为一个向量存放在varargin里面。
比如mygui('路人甲','80‘),那varargin存放了'路人甲',varargin=’80‘
那mygui中对这读取两个数据进行反应,就达到了传入参数的目的。
传出那怎么把数据传出来呢?
将你要输出的数据存在handles.output里面
在gui任意地方
handles.output=数据1;
handles.secend_output=数据2;
然后在gui的outputf**里面加上
varaginout=handles.output;
varaginout=handles.secend_output;
这样就把数据传出来了。
看每一个gui的最外层的那句
function varargout = mygui(varargin) 看输入输出,就是这样了。把gui本身就是一个函数,
b=mygui(一些传入的参数) 就执行gui并返回结果
则b就得到了传出来的结果。
matlab gui是什么
2楼:du瓶邪
g=graphic图形 u=user用户 i=inte***ce界面
打个比方,gui就是windows,没有gui就是dos。
gui是挺fashion的,在教学、演讲、演示的时候可以使用gui。
3楼:匿名用户
matab 是个编程软件。多用于通信系统模拟。gui就是使编程人性化,易于操作,不必再debug再运行。
就像电脑自带的计算器那样。运行既生成计算器的那个界面,输入只需要用鼠标点击上面的按钮就可以了。
4楼:匿名用户
gui就是用户可视化界面,简单地说就是像word 的界面,即不需要写命令,可以用鼠标操作,对于初学者比较容易学
5楼:匿名用户
准确的讲,正常情况下,这种东西完全没有意义
matlab gui 是干什么的?
6楼:匿名用户
matlab gui 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和**等诸多强大功能集成在一个易于使用的视窗环境中。
为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如c、fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
扩展资料
优势特点:
1、高效的数值计算及符号计算功能,能使用户从繁杂的数**算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
7楼:匿名用户
g=graphic图形 u=user用户 i=inte***ce界面打个比方,gui就是windows,没有gui就是dos。
gui是挺fashion的,我个人认为在教学、演讲、演示的时候可以使用gui。
如果是程序是编给自己用的话,没必要加入gui,因为编写gui挺耗费精力和事件的,有这个时间,还不如去进一步完善程序本身。等最后“小有成果”了,需要展示了,再去编个gui还不迟。
matlab帮助的demo里面有一些gui的例子,初学的话,看看知道有回事就行了。毕竟gui不是matlab的精髓。
MATLAB的发展和现状是什么,MATLAB的现状及发展
1楼 匿名用户 1 在打开的ie浏览器窗口右上方点击齿轮图标,选择 inter 选项 ,如下图所示 2 在打开的inter 选项窗口中,切换到安全栏,在安全选卡中点击 自定义级别 ,如下图所示 3 在 安全设置 inter 区域 界面找到 java 小程序脚本 活动脚本 ,并将这两个选项都选择为 禁...
学matlab有什么用吗我是学机械的
1楼 臣天男 当然有用啦。很多时候,机械上的一些模型,你没有。你可以通过matlab来模拟这个模型来工作啊。 一个正规的matlab软件,很贵的,大概需要好几万才能装一下。贵有贵的好处,它功能很强大的,只是我们学得太少,用得太少。加油学啊。 找工作时,你要是说我精通matlab,肯定有很多公司愿意要...
俩个向量的长度比值是什么作用,Matlab里 2个向量的比值怎么写?
1楼 铁打的泥人 这个具体的说不上有什么作用,都是按题目而定的 一般空间几何的时候会用到,具体的都是由题目定式子推导出来的 就像你上一题一样,只要你记住向量运算的公式就行了 matlab里 2个向量的比值怎么写? 2楼 匿名用户 是两个向量长度的比 还是向量中对应元素的比? 向量长度的比 sqrt ...