函数绘图基本原理:由列向量来确定点然后用光滑或平折的现将这些点连起来
Axis off(on)去掉恢复坐标轴axis([xmin,xmax,ymin,ymax])
绘图函数的使用
plotbrowser('toggle')切换plotbrowser命令在plotbrowser(‘on’)和plotbrowser(‘off’)间切换
plot3(x,y,z,c)是按列向量绘制多条曲线,x,y,z是同维的矩阵或者size(z)=size(y)*size(x)meshgrid(x,y或者[a:b:c])x,y都是向量
patch(x,y,z,c)x,y,z是向量能x=(x1,x2,x3,x4….)y,z类似(x1,y1,z1),(x2,y2,z2)….会构成闭合图形然后再闭合图形里面填充‘c’颜
mesh(x,y,z)绘制三维网格图meshc绘制网格和等值图meshz绘制包含零平面网格图
surf曲面图(有网格但是颜变化为曲面颜变化)shading flat去掉曲面连接处的曲线shading interp在各片之间之间填充颜插值shading faceted 有曲线的曲面图
surface(x,y,z)(填充网格里面的彩没有和mesh合作时相当于在X—Y上投影)和mesh(X,Y,z)联合使用相当于surf曲面图
surfl根据光线来绘制曲面图
cylinder三维柱面绘图函数cylinder(r,n)
绘制等高线图形函数
Contour英语单词n等高线,轮廓线v画等高线
[c,h]=contour(x,y,z)/contourfz,n)向量h(由绘图宗旨可以理解)Contourf(z.n)绘制等高线曲面(有颜区分)
Clabel(c,h)函数标志高度值
视角改变和曲面裁剪
视角概念;默认三维视角是以30视角向下看Z=0平面,以37.5度的视角向上看X=0平面,称三十度的叫做仰角,37.5度的叫做方位角默认二维视角是仰角90度位角0度
相关的函数命令:view(az,el)仰角,方位角设置view([x,y,z])设置观察点,iew(2/3)默认二维三维视角,[az,el]=view返回当前视角
曲面裁剪:利用nan使得“高”矩阵部分数据为零,使哪些数据为零要用函数find返回值为下标组成的向量i,j为一维矩阵则a(I,j)为i*j 矩阵
Matlab程序设计初步
M脚本文件是一系列命令的集合体它与命令窗口公用workspace而,M函数文件有自己独立的内存空间。
(1)匿名函数:函数名=@(参量表)表达式,可以再M文件,命令窗口(相当于一个变量会在workspace中出现)定义,有一
个好处不需要M文件的维护。当只输入函数名不加”(参量可以
是空参量)”时显示此句柄(@(参量表)表达式)。可以当其
他函数的参量使用。
(2)关于子函数和嵌套函数:每个文件有且只有一个主函数最先出现的就是主函数。主函数和子函数通过参数传递来实现变量值
得单向传递。但子函数并不改变此值,因为主函数只是将变量
的值传递过去并没有将地址传递过去。而嵌套函数有权限访问
被嵌套函数的工作空间。所以嵌套函数可以改变主函数的变量
的值。
两种结构:子函数结构:function 输出量=函数名(参量)
。。。。。。。。
子函数(参量表)
。。。。。。
end
嵌套函数结构function 输出量=函数名(参量)
。。。。。。。。
嵌套函数(参量表)
。。。。。。。
end
end
(3)函数句柄的创建:所有的函数都有一定的作用域,函数的作用域决定了哪些函数可以访问它。函数句柄必须在其作用域内创建。能访问函数句柄的都能访问与函数句柄相关的函数。
格式:function h=getcubehandle
h=@findecube
function cube=findecube(x)
cube=x.^3
end
end
cubelt=getcubehandle
matlab等高线填充颜则cubelt获得了句柄,有时候getcubehandle还有参数。则cubelt变成了句柄函数,当有参数时就是带有指定参数的句柄函数。
变量值的传递
(1)设置全局变量则所有的子函数不需经过变量传递也可使用了。设置方法:在主函数名说明之后,用语句global 变
量名。
(2)参数传递可变参数用nargin nargout配合if语句即可Function [a,b]=addsub(x,y)
If nargout==2
a=x+y
else
a=x+y
b=x-y
end
(3)可变数目的变量的传递varargin varargout
function y=mytestvario(varargin)
i=2
temp=0
keyboard
for n=1:length(varargin)
a=sum(varargin{n} (1,:));
a=(-1)^i*a;
temp=temp+a
i=i+1;
end
y=temp
(对于有参数的M函数文件可以通过keyboard命令来实现调
试的时候给参变量赋值)
注(matlab矩阵以列为标准)
图形句柄函数:ah=figure(。。。)axes(。。。。)可获得
相应对象的句柄matlab的图形窗口一般以覆盖的形式显示多
个axes显示可以通过改变大小拖动图形是所有的图形显示出来,用plotbrowser(‘on’)也可以现(利用ctrl选中可实现对多
个对象的操作)。
get(句柄,属性)获得对象的属性get(句柄)属性和属性值
get(句柄,‘type’)获得属性是一个字符串
gcf gco gca