Matlab学习报告 21-01-08

Matlab学习报告 21-01-08

  1. 三维绘图及图像处理
  2. GUI设计
三维绘图及图像处理
1)空间曲线

采用plot3(x,y,z,s),其中s仅为图像性质,可不填。

例:
三维螺线
x=t
y=sint
z=cost
0<t<20

t=[0:0.5:20]   %或可用更精密的[0:0.1:20]
x=t
y=sint
z=cost
plot3(x,y,z,'*')    %只描点不连线
%plot3(x,y,z,'r*-'),增加连线
%或者plot3(x,y,z),默认蓝线
2)空间曲面

采用mesh(网格)或surf(曲面)绘制
若绘制z=z(x,y)曲面,先生成X,Y网格矩阵,后计算函数在各网格点的值
生成方法是[X,Y]=meshgrid(x,y),若x=y,可写为[X,Y]=meshgrid(x)。

如 墨西哥帽:
在这里插入图片描述

x=[-8:0.5:8];
y=[-8:0.5:8];
[X,Y]=meshgrid(x,y);      %以上三句也可简写成[X,Y]=meshgrid([-8:0.5:8]);
r=sqrt(X.^2+Y.^2)+0.01;    %sqrt是平方根根运算,
                           %X和Y由于是矩阵,在运算中需加.
                           %多加了0.01是为了防止r=0使得下面z的运算出错
z=sin(r)/r;
mesh(X,Y,z)    %换成surf(X,Y,z)则是曲面
3)图像精细化处理

视点处理

view(al,el) %前为方位角,后为仰角。默认方位角37.5度,仰角30度。

色彩处理
MATLAB有一个叫颜色映象的数据结构来代表颜色值。颜色映象定义为一个有三列和若干行的矩阵。利用0到1之间的数,矩阵的每一行都代表了一种色彩。任一行的数字都指定了一个RGB值,即红、黄、蓝三种颜色的强度,形成一种特定的颜色,如[0.67,0,1]是紫色。

在这里插入图片描述
色彩映像直接使用:
语句colormap(M)将矩阵M作为当前图形窗口所用的颜色映象。有十个MATLAB函数产生预定的颜色映象。
在这里插入图片描述 函数plot、plot3、contour和contour3不使用颜色映象,它们使用列在plot颜色和线形表中的颜色。而大多数其它绘图函数,比如mesh、surf、fill、pcolor和它们的各种变形函数,使用当前的颜色映象。

surf(peaks);  %peaks为峰值函数,经典的三维视图例子,在这里直接绘制peaks的三维曲面。
colormap(autumn);   %将色彩定为西红柿炒蛋色

透视与消隐:
hidden on/off ,关/开隐藏线条

p=peaks;mesh(p);
colormap(jet);hidden on    %此时挡住部分不予显示

图像裁剪
将需要裁剪的部分设为NaN,即非数。

p=peaks;
p(30:40,20:30)=nan*p(30:40,20:30);  %直接将p的这一部分用乘法赋值为非数
surf(p)
GUI设计

matlab提供了一个可视化的GUI设计系统:guide。
可直接在命令行输入guide打开,或者打开matlab主窗NEW➡APP菜单➡GUIDE。
使用GUIDE编辑器编辑GUI,要分别编辑两个文件:一个是fig文件(.fig),包含了GUI对象的属性设置及其布局信息;另一个是M文件(.m),包含了控制GUI对象执行的回调函数。用户要做的只是两个步骤:GUI对象属性设置与布局、编辑回调函数。
在这里插入图片描述
左侧控件栏提供了所有matlab支持的控件。
在这里插入图片描述只需要拖拽至工作区即可,
双击工作区中的控件,即可打开对象属性
在这里插入图片描述

tag是句柄标识,GUIDE自动创建的句柄在程序内部以此作为标识。例如此处,引用按钮句柄的方式为handles.pushbutton2。而string是显示在按钮上的字符串。
注意拖拽后应使用对齐按钮进行对齐:
在这里插入图片描述注意,在添加空间进行界面设计之前,要根据程序需要对生成的GUI界面进行设置:选择界面设置器下的【tools】菜单下的【GUI options】
在这里插入图片描述

界面设计之后,编写每个控件的回调函数响应控制即可。

如,以复选框为例,我们想达到的效果是根据选中状态调整对象的Grid是否发开。
右键选择回调函数菜单下的callback,会跳到m文件相应的函数块中,可以看出一个复选框返回有三个值 hObject,evendata,handles。
Handles结构体主要有两个用途:访问gui数据,由于handles结构体作为第3个输入参数传递进了每个回调函数中,而handles结构体包含了gui对象的tag值和句柄的信息,所以,每个回调函数可通过handles获取任何gui对象的数据。hObject是所有回调函数的第一个参数。在opening函数和output函数中,表示当前figure对象的句柄;在回调函数中,表示该回调函数所属对象的句柄(注意O是大写)
在这里插入图片描述

% Hint: get(hObject,‘Value’) returns toggle state of checkbox1。可知通过get(hObject,‘Value’)会返回0或1,得到复选框是否选中(1为选中),我们用选择语句进行操作即可
在这里插入图片描述
参数传递:
采用setappdata和getappdata来进行参数的传递。基本语法如下,

setappdata(handle, 'varname', value)
 value = getappdata(handle, 'varname')

SET和GET函数

SET和GET函数在使用控件时最重要的函数,分别是设置和获取控件属性值的函数。语法如下,

set(handle, 'property', value)
value = get(handle, 'property')
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值