关于matlab的GUI知识

2024-05-18 15:38

1. 关于matlab的GUI知识

先看在一个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('TimerFcn', {@timerCallback, handles}, 'ExecutionMode', 'fixedDelay', 'Period', 1.0);
% 设置窗口关闭的回调函数
set(handles.figure1, 'DeleteFcn', {@DeleteFcn, t});
% 启动定时器
start(t);
%传入handles
function timerCallback(obj, event, handles)
  temp=get(handles.my_popup,'Value');
end
% 窗口关闭的响应函数-停止计时器
function DeleteFcn(hObject, eventdata, t)
stop(t);
end


3 在其他子函数或者非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_OpeningFcn(hObject, eventdata, handles, varargin)
                  所有的启动参数都是通过varargin传到它的OpeningFcn里面的。那启动参数可以是哪些呢?
     
    1、figure,也就是窗口参数。
         比如说position之类
         例如:打开这个GUI时,使用这个命令  mygui('Position',[434 234 234 34])则表示打开窗口在这个位置;还有哪些可控属性可以查help。
     2、自定义参数 。
       如果传入的参数不是figure的属性(matlab查找不到你输入的属性名),则你输入的参数作为一个向量存放在varargin里面。
       比如mygui('路人甲','80‘),那varargin{1}存放了'路人甲',varargin{2}=’80‘
       
     那mygui中对这读取两个数据进行反应,就达到了传入参数的目的。

  传出
      那怎么把数据传出来呢?
      将你要输出的数据存在handles.output里面
     在GUI任意地方
              handles.output=数据1;
              handles.secend_output=数据2;
     然后在GUI的outputFcn里面加上
             varaginout{1}=handles.output;
             varaginout{2}=handles.secend_output;

这样就把数据传出来了。

看每一个GUI的最外层的那句
     function varargout = mygui(varargin)     看输入输出,就是这样了。把GUI本身就是一个函数,
        b=mygui(一些传入的参数)   就执行GUI并返回结果
        则b就得到了传出来的结果。

关于matlab的GUI知识

2. matlab gui 是干什么的?

matlab gui 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。
为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。


扩展资料

优势特点:
1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

3. matlab gui大神请进?

题主的问题,实际上就是一个查询问题。该问题可以怎样来解决:
1、将已知数据赋值给变量A,或以其他形式保存(如,xls文件),以建立数据体。如:
A=[0.0065,455,0.3187,0.0480,17441;。。。;。。。]
2、利用find函数,对数据变量A进行搜索,当λ=460时,首先将指针定位到460,然后取去该行的数据,即
lambda = input('请输入λ值:');
[row,col] = find(A==lambda);
x=A(col,3),y=A(col,4),z=A(col,5)
运行代码,可以得到如下结果。



matlab gui大神请进?

4. matlab gui是面向对象编程吗

是的。

面向过程的编程是一种以过程为核心的编程算法,把问题的过程按照步骤分解出来,然后用函数形式加以实现。
面向过程编程方法的优点是简单快捷,缺点是面对复杂的程序难以修改和维护。
面向对象编程的优点是把大问题分解成小的对象,通过组合和信息传递完成任务,通过继承达到代码的复用,修改或添加模块不会影响到其他模块。
面向过程编程的局限性是不容易维护和扩张。大多数情况下,如果已有了面向过程的程序,可以用面向对象的思想去包装这些已有的程序,并且在此基础上继续维护和扩张已有的程序。。

5. 怎样使用matlab的gui做绘图界面

  1
  打开Matlab

  2
  新建Gui File--New--GUI 出现如下窗口
  可点击Blank GUI,出现布局窗口

  3
  保存为FunctionDrawing.fig,存储路径默认,出现如下变换

  4
  通过选取Edit Text,Static Text,Axes按键,布局如下界面

  各字体、字样可通过双击相应选体进行修改。

  5
  右击“绘图”--View Callbacks--Callback,出现如下命令输入窗口


  6
  输入程序命令,进行各环节的联结


  7
  点击运行按钮(绿色三角按钮),出现如下界面


  8
  输入函数及其它相关参数,点击绘图,即可显现图形

怎样使用matlab的gui做绘图界面

6. 怎样使用matlab的gui做绘图界面

对于图像处理来说,Matlab有着巨大的优势,Visual C++常用来制作人机交互界面,其实Matlab制作GUI界面是十分简单的,只需要如下操作:
1、在输入行:guide显示界面如下:

2、选择创建新的gui,然后选择创建一个空的gui,同时注意保存的路径
3、左边有许多控件:如按钮,在左边点击ok按钮,然后在右边网格区域点击一下即可(或者直接将ok按钮拉过去)。

4、push button按钮,双击此按钮 ,会显示属性界面,然后就可以修改此按钮的各种属性:
5、可以修改按钮的名字等信息。
6、右击按钮,可以选择view callbacks中的callback即可进行一个函数,此函数当点击按钮的时候就会被调用,在此函数中添加命令:msgbox('你好');
7、然后点击此按钮就可以显示所想显示的内容。

7. 在线使用matlab的网站可以使用gui吗?

一、进入GUI编程界面
matlab有两种进入gui编程界面的方法,一是单击主界面的图标进入,二是在命令栏输入guide后按回车进入。
进入GUI编程界面后选择Blank GUI --> 确定就进入 一个空白的GUI编程界面。
可以看到左边有一些常见的编程控件,如按钮、滑动条、坐标轴等,右上角有运行按钮,单机即可运行。
二、制作一个简单的可变频率的正弦信号显示器。
1.拖入一个坐标轴,用于显示;拖入一个文本框,用于输入频率。
2.拖入一个按钮,右键拖入的按钮,选择属性检查器,修改按钮相关属性,如背景色、前景色等,这里我们修改为运行;
需要提醒的是,像所以其他的界面编程一样,每个控件有自己的位移表识属性Tag属性,调用该控件就是使用Tag属性调用。
3.添加按钮回调函数
点击按钮执行的程序段,称为回调函数。在matlab的界面编程中,只有右键控件 --> 查看回调,就可以添加回调函数。【摘要】
在线使用matlab的网站可以使用gui吗?【提问】
一、进入GUI编程界面
matlab有两种进入gui编程界面的方法,一是单击主界面的图标进入,二是在命令栏输入guide后按回车进入。
进入GUI编程界面后选择Blank GUI --> 确定就进入 一个空白的GUI编程界面。
可以看到左边有一些常见的编程控件,如按钮、滑动条、坐标轴等,右上角有运行按钮,单机即可运行。
二、制作一个简单的可变频率的正弦信号显示器。
1.拖入一个坐标轴,用于显示;拖入一个文本框,用于输入频率。
2.拖入一个按钮,右键拖入的按钮,选择属性检查器,修改按钮相关属性,如背景色、前景色等,这里我们修改为运行;
需要提醒的是,像所以其他的界面编程一样,每个控件有自己的位移表识属性Tag属性,调用该控件就是使用Tag属性调用。
3.添加按钮回调函数
点击按钮执行的程序段,称为回调函数。在matlab的界面编程中,只有右键控件 --> 查看回调,就可以添加回调函数。【回答】
可以的哦【回答】

在线使用matlab的网站可以使用gui吗?

8. matlab GUI怎么打开?

两种方法
1、输入guide回车。
2、在工具栏里点击带笔形的gui。
为Matlab的GUI添加启动画面:
添加启动画面,启动画面中可以添加想要添加的图像……Visual C++可以实现这个功能,Matlab也可以实现,具体如下:
首先,新建立一个GUI,这个新建的GUI用于显示启动时想要添加的图像。GUI中添加一个axes控件,然后在GUi的m文件中的OpeningFcn函数中就可以添加图像,程序如下:
a=imread('你图像'); % 加载图
axes(handles.axes1); % 添加的axes的tag为axes1
imshow(a); % 显示
同时在GUI的属性中将Gui名称改为“程序正在启动,请稍候…………”提示的话语。
然后,另外新建一个GUI,同时,在GUI中的m文件中的OpeningFcn函数中添加如下程序:
mainHandle=gui2(); % 第一个GUI的名称为gui2
pause(3); % 显示3秒
close(mainHandle); %显示3秒后,关闭
这样,3秒后你的程序主界面就出来了【摘要】
matlab GUI怎么打开?【提问】
亲~这道题由我来回答,打字需要一点时间,还请您耐心等待一下。【回答】
两种方法
1、输入guide回车。
2、在工具栏里点击带笔形的gui。
为Matlab的GUI添加启动画面:
添加启动画面,启动画面中可以添加想要添加的图像……Visual C++可以实现这个功能,Matlab也可以实现,具体如下:
首先,新建立一个GUI,这个新建的GUI用于显示启动时想要添加的图像。GUI中添加一个axes控件,然后在GUi的m文件中的OpeningFcn函数中就可以添加图像,程序如下:
a=imread('你图像'); % 加载图
axes(handles.axes1); % 添加的axes的tag为axes1
imshow(a); % 显示
同时在GUI的属性中将Gui名称改为“程序正在启动,请稍候…………”提示的话语。
然后,另外新建一个GUI,同时,在GUI中的m文件中的OpeningFcn函数中添加如下程序:
mainHandle=gui2(); % 第一个GUI的名称为gui2
pause(3); % 显示3秒
close(mainHandle); %显示3秒后,关闭
这样,3秒后你的程序主界面就出来了【回答】
如果已经解答您的疑问,麻烦您点击评价给5颗小星星赞哦~ 如果有未解答问题可以留言或者再次咨询希望可以帮助到您~ 祝您生活愉快【回答】