matlabGUI入门

matlabGUI入门1基础知识1.1函数1.2数据类型1.3绘图1.4其它2GUIDE2.1创建GUI界面2.2模板选择2.3控件2.4对象浏览器2.5回调函数2.6属性检查器2.7数据传输由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面(GUI)。它可以允许用户定制与MATLAB的交互方式,从而命令窗口不再是唯一与MATLAB的交互方式。用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。

大家好,又见面了,我是你们的朋友全栈君。


前言

由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面(GUI)。它可以允许用户定制与MATLAB的交互方式,从而命令窗口不再是唯一与MATLAB的交互方式。用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。


1 基础知识

1.1 函数

匿名函数

F=(input1,input2...)expr

主函数
一个m文件只有一个主函数

子函数
一个m文件中主函数之外的函数称为子函数

嵌套函数

function
	function
	end
end

私有函数
具有限制性访问权限的函数

重载函数
类似java的重载方法

1.2 数据类型

matlab的基本数据类型是双精度类型和字符型。

数据类型 说明 字节数
double 双精度数据类型 8
sparse 稀疏矩阵数据类型 N/A
single 单精度数据类型 4
uint8 无符号8位整数 1
uint16 无符号16位整数 2
uint32 无符号32位整数 4
uint64 无符号64位整数 8
uint8 有符号8位整数 1
int16 有符号16位整数 2
int32 有符号32位整数 4
int64 有符号64位整数 8

运算符

运算 运算符
+ a+b
a-b
* a*b
/ a/b
^(. ^) a^b
复数矩阵的(共轭)转置 ‘(. ‘) A’(A.’)

矩阵和元胞数组

1.3 绘图

二维绘图

plot函数
在这里插入图片描述

xlabel('string'):表示给当前轴对象的x轴贴标签

ylabel('string'):表示给当前轴对象的y轴贴标签

title('string'):表示给当前坐标轴上方居中放置标题

三维绘图
plot3:绘制三维曲线图

stem3:绘制三维枝干图

grid on:打开坐标网络

grid off:关闭坐标网络

hold:在原有图形上添加图形

hold on:保持当前图形窗口内容

hold off:解除当前保持状态

1.4 其它

clc;
%清空命令行窗口
clear;
%清除工作空间所有变量
clear all;
%清除工作空间所有变量和函数
close all;
%关闭图形窗口
save name;
%保存工作空间变量到文件name.mat中
save name.mat xy
%保存工作空间变量x,y到文件name.mat中
load name.mat
%载入name.mat文件中的所有变量到工作空间
load name x y
%载入name.mat文件中的的变量X.y到工作空间

2 GUIDE

GUIDE (graphical user interfaces development environment)是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面。

  • 使用GUIDE编辑器编辑GUI,要分别编辑两个文件:一个是fig文件(.fig),包含了GUI对象的属性设置及其布局信息;另一个是M文件(.m),包含了控制GUI对象执行的回调函数。用户要做的只是两个步骤:GUI对象属性设置与布局、编辑回调函数。
  • 由GUIDE生成的M文件,控制GUI并决定GUI对用户操作的响应。它包含运行GUI所需要的所有代码。GUIDE自动生成M文件的框架,用户在该框架下编写GUI组件的回调函数。M文件由一系列子函数构成,包含主函数、opening函数和回调函数。其中主函数不能修改,否则容易导致GUI界面初始化失败。
  • hObject表示当前回调函数对应的GUI对象句柄,eventdata为附加函数,handles为当前GUI所有的数据的结构体,包含所有GUI对象的句柄和用户定义的数据。
  • gui_mainfcn函数:是GUI默认的处理函数。gui_mainfcn根据gui_state和传入参数来确定是执行回调函数还是打开GUI并运行openingfcn和outputfun。如果gui_callback为空,那么就运行GUI,打开主窗口fig文件;否则gui_callback指定的子函数。

将.fig文件用GUIDE打开便可编辑界面。
可以直接在.m文件中编辑函数。

2.1 创建GUI界面

GUI的打开方式有以下两种:
1、命令方式

guide
%打开设计工作台启动界面。

guide file
%在工作台中打开文件名为file的用户界面。

2、菜单方式
在菜单栏中新建图像界面。

保存后会得到两个文件:.fig文件和.m文件。

2.2 模板选择

GUIDE提供了四种模板:
1、空白模板
在这里插入图片描述

2、控件
在这里插入图片描述

3、轴和菜单栏
在这里插入图片描述

4、模态对话框:
在这里插入图片描述

2.3 控件

在这里插入图片描述

按钮:执行某种预定的功能或操作

切换按钮:产生一个动作并指示一个二进制状态(开或关),当鼠标单击它时按钮将下陷,并执行Callback(回调函数)中指定的内容,再次单击,按钮复原,并再次执行Callback中的内容

单选按钮:单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项

复选框:单个的复选框用来在两种状态之间切换,多个复选框组成- -个复选框组时,可使用户在一组状态中做组合式的选择,或称为多选项

可编辑文本:用来使用键盘输人字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作

静态文本:仅用于显示单行的说明文字

滑块:可输人指定范围的数量值

列表框:在其中定义一系列可供选择的字符串

弹出式菜单:让用户从一列菜单项中选择一项作为参数输人

轴:用于显示图形和图像

2.4 对象浏览器

可以查看所有的对象。

2.5 回调函数

在GUIDE编辑界面选择控件>右击选择查看回调>选择指定的回调函数>跳转到.m文件指定函数编辑区域

CallBack:最常用的回调函数。点击按钮时,按钮下的Callback就会执行;拖动滑块时,滑块名下的callback就会执行。正常用途全放在callback下。

ButtonDownFcn:单击,这个函数名下的代码就会执行。
注:按钮的callback也是点击,会覆盖掉buttondownfcn函数。

CreateFcn:顾名思义,在生成这个控件,显示之前,执行这个函数名下的代码。

DeleteFcr:顾名思义,在控件要销毁,但是被毁灭之前执行这个函数名下的代码。

KeyPressFcr:当前控件获得焦点且有按键按下时执行。

SelectionChangeFcr:在群按钮组件中改变选择时,所执行的函数。

2.6 属性检查器

利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。
在这里插入图片描述

2.7 数据传输

global定义全局变量

句柄
handles

传值

a=str2double(get(handles.edit1,'String'));

画图

plot(handles.axes1,x,y);

赋值

set(handles.edit2,'String',a);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135360.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 自动化测试框架[Cypress PO模式]

    自动化测试框架[Cypress PO模式]【附源码】在Cypress中并不认为PO是个很好的模式,Cypress认为跨页面共享逻辑是一个反模式(Anti-Pattern),在Cypress中,它提供了很多方式,允许用户通过更简单的方式直接设置被测应用程序达到的待测试状态,不需要再不同页面一遍又一遍的执行相通操作

  • vue单页应用和多页应用_多页面应用需要vuejs吗

    vue单页应用和多页应用_多页面应用需要vuejs吗进入一家新的公司,要开发移动端app项目,前端技术选型时前端组长选的是vue的多页面开发,当时很蒙,vue不是单页面开发吗?咋出来多页面的。接触之后才发现确实存在也挺简单的,省去了路由表的配置。那就给大家整体思路分析一波吧。不足之处还请包涵!单页面开发我就不多说了,主要讲多页面的开发模式与最终效果,网上一搜单页面会有好多文章博客,但是搜多页面的就很少了,比如下面这个就是列了一下两种开发模式的优缺点。首先多页开发,肯定是一个页面就是一个单独文件,每个文件也有自己的.vue.js和comp.

    2022年10月13日
  • vue解决跨域_java跨域解决方案

    vue解决跨域_java跨域解决方案现阶段跨域方式有很多种,但是基本思想只有两种:绕过同源策略:历史遗留的产物,虽然思想很好,但是局限性太大(仅支持、因为数据是在中,所以携带数据小)。:通过反向代理绕过去,这是很完美的解决方案,加上会给服务器增加一点压力,不过这点压力问题并不大[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ddoEgRFd-1656482203293)(https://juejin.cn/)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4M4avsX0-1

  • idea中配置tomcat服务器_服务器管理器怎么打开

    idea中配置tomcat服务器_服务器管理器怎么打开小白教程

    2022年10月18日
  • 用Xshell连接虚拟机Linux「建议收藏」

    用Xshell连接虚拟机Linux「建议收藏」首先,要将虚拟机中的Linux系统设置为桥接模式。然后进一步确认虚拟机的ip地址跟本机地址在同一个网段(要ping的通)。具体操作如下:1、查看我本机的IP地址是:10.253.0.512、继续查看虚拟机中linux系统的IP地址是:10.253.0.91然后在windows上ping一下:可见完全是ping的通的。3、接下来配置Linux的

  • shell循环控制sleep、continue、break

    shell循环控制sleep、continue、break循环控制语句sleepN脚本执行到该步休眠N秒continue跳过循环中的某次循环break跳出循环继续执行后续代码首先,要明确“break”与“continue”的区别:break:在for循环使用break,则跳出这个循环,循环命令结束continue:使用后,在当前循环终止命令,直接进入下个循环而break与countine都是作用于单个循环,如果想要进行多层循环操作,则需要在后面加数字,如break2和continue2。sleepN脚本执行到该步休眠N秒[ro

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号