MATLAB的交互式界面 简易设计

本文是对初步接触GUI的简易笔记,主要包括:界面的打开、基本按钮的设置、按钮值的调用、简单实验

一:打开GUI

在MATLAB命令窗口输入:guide 

MATLAB会弹出GUI的快速界面如图1

一般选择空白GUI,勾选fig则会弹出MATLAB代码和GUI设计界面,如图2

MATLAB的交互式界面 简易设计_第1张图片 图1:快速开始界面
 
MATLAB的交互式界面 简易设计_第2张图片 图2:code&GUI
​​​​​​

二、选择相应的目标

拖拽菜单栏的相应目标到网格区域:

slider: 滑块,可以通过调节滑块使得某一数值在一个区间内连续改变

bottom:按钮,点击按钮则会完成一个操作

(radio bottom、check bottom、menu、listbox、bottom group可组合成单选框和复选框)

EDIT:编辑框,即时输入数值

TXT:静态文本框,显式表达各种标题和文本,不可改变

table:表格

axes:坐标图

拖拽到网格区域后,双击某一目标,打开简易的属性设置,如图3:

MATLAB的交互式界面 简易设计_第3张图片 图3:操作目标的属性设置

属性编辑的两种方法:

1、可以直接修改某项的值,比如:‘string’--命名,FontSize--字号大小

2、通过点击目标的右键---view callback---callback,打开对应目标手柄的代码段

      下列slider的例子:

function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider

%设置滑块的取值范围为0~20
set(hObject,'Min',0);
set(hObject,'Max',20);

       绘图的命令可以直接写在slider下面,也可以再添加一个bottom来控制

三、目标值的调用

1、句柄代码段内部的调用

直接用get调用

a=get(hObject,'Value');

2、不同句柄之间的调用

用handles.tag调用,例如:将滑块的值显式在旁边的编辑框中,则在滑块的callback中添加代码:

set(handles.edit1,'String',num2str(get(hObject,'Value')));

将滑块的“Value”转化成字符串之后赋给 edit1 的 “String”

四、一个实验

今天(情人节)刷手机看到有人用GeoGebra绘制如下函数得到一个动态爱心,于是拿来做个简易的实验

绘制函数图像:y=x^{\frac{2}{3}}+0.9(3.3-x^{2})^{0.5}sin(a\pi x)

其中参数a的范围是0到20

由于实际用MATLAB绘制如上函数图像时两端不在同一水平线上,右端有一个近似的线性漂移,于是在原函数基础上减去一个线性项,也就是绘制如下函数图像:

y=x^{\frac{2}{3}}+0.9(3.3-x^{2})^{0.5}sin(a\pi x)-(\frac{2.5}{4}x+0.25)

slider1的代码修改如下:

%设置滑块范围
set(hObject,'Min',0);
set(hObject,'Max',20);

%将滑块值输出到编辑框中
set(handles.edit1,'String',num2str(get(hObject,'Value')));

axis off; %隐去坐标轴
set(gcf,'menubar','none','toolbar','none');%不显示当前figure 菜单栏和工具栏

x=-2:0.005:2;
%可调参数
n=size(x,2);

%调用滑块值
a=get(hObject,'Value');
for i=1:n
    y(i)=x(i)^(2/3)+0.9*(3.3-x(i)^2)^0.5*sin(a*pi*x(i))-2.5/4*x(i)-0.25;
end
plot(x,y,'r')

%打开旋转
rotate3d on

添加一个静态文本框作为标题:

改变名字,“String”--Love story,改变字号和颜色

最后得到如下的交互界面,如图4:

MATLAB的交互式界面 简易设计_第4张图片 图4:当a取值为18.545时对应的爱心

 

本文只是一个简单的尝试,更多关于MATLAB的GUI的设计会在以后继续学习补充。

你可能感兴趣的:(MATLAB的交互式界面 简易设计)