26matlab笔记应用.docx
- 文档编号:616455
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:10
- 大小:61.78KB
26matlab笔记应用.docx
《26matlab笔记应用.docx》由会员分享,可在线阅读,更多相关《26matlab笔记应用.docx(10页珍藏版)》请在冰豆网上搜索。
26matlab笔记应用
函数绘图基本原理:
由列向量来确定点然后用光滑或平折的现将这些点连起来
Axisoff(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曲面图(有网格但是颜色变化为曲面颜色变化)shadingflat去掉曲面连接处的曲线shadinginterp在各片之间之间填充颜色插值shadingfaceted有曲线的曲面图
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矩阵
处理图像的通用函数
Figure(n)subplot(I,j,n)holdon/offgridon/offboxon/off
Set(a1,’position’,[left,bottom,width,height])labelxlabelylabelzlegend(‘’,’’)text(x,y,z,’’)gtext(‘’)
特殊图
条形图:
bar,barh,bar3,bar3h,bar(…..’grouped’)bar(…..’stacked’)h=bar(….)返回补片对象的句柄向量
直方图:
hist(y,m)统计用的将y矩阵的所有值统计到m个区间上
Matlab程序设计初步
M脚本文件是一系列命令的集合体它与命令窗口公用workspace而,M函数文件有自己独立的内存空间。
(1)匿名函数:
函数名=@(参量表)表达式,可以再M文件,命令窗口(相当于一个变量会在workspace中出现)定义,有一个好处不需要M文件的维护。
当只输入函数名不加”(参量可以是空参量)”时显示此句柄(@(参量表)表达式)。
可以当其他函数的参量使用。
(2)关于子函数和嵌套函数:
每个文件有且只有一个主函数最先出现的就是主函数。
主函数和子函数通过参数传递来实现变量值得单向传递。
但子函数并不改变此值,因为主函数只是将变量的值传递过去并没有将地址传递过去。
而嵌套函数有权限访问被嵌套函数的工作空间。
所以嵌套函数可以改变主函数的变量的值。
两种结构:
子函数结构:
function输出量=函数名(参量)
。
。
。
。
。
。
。
。
子函数(参量表)
。
。
。
。
。
。
end
嵌套函数结构function输出量=函数名(参量)
。
。
。
。
。
。
。
。
嵌套函数(参量表)
。
。
。
。
。
。
。
end
end
(3)函数句柄的创建:
所有的函数都有一定的作用域,函数的作用域决定了哪些函数可以访问它。
函数句柄必须在其作用域内创建。
能访问函数句柄的都能访问与函数句柄相关的函数。
格式:
functionh=getcubehandle
h=@findecube
functioncube=findecube(x)
cube=x.^3
end
end
cubelt=getcubehandle
则cubelt获得了句柄,有时候getcubehandle还有参数。
则cubelt变成了句柄函数,当有参数时就是带有指定参数的句柄函数。
变量值的传递
(1)设置全局变量则所有的子函数不需经过变量传递也可使用了。
设置方法:
在主函数名说明之后,用语句global变量名。
(2)参数传递可变参数用narginnargout配合if语句即可
Function[a,b]=addsub(x,y)
Ifnargout==2
a=x+y
else
a=x+y
b=x-y
end
(3)可变数目的变量的传递vararginvarargout
functiony=mytestvario(varargin)
i=2
temp=0
keyboard
forn=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’)获得属性是一个字符串
gcfgcogca
查找函数获得句柄,get(handle,‘child’)
Set/set(handle,可以是数据,但必须准确)matlab中用formatlong可得到准确的数据然后拖过去即可。
[x,y]=ginput(n)在图上获取n个点的坐标值
Matlab在调用M文件时首先对M文件进行分析分析完后后将相应的内部伪代码(pesdocode)即P码文件存放在内存中。
下次在调用M文件时,直接调用P码文件这样又快又好。
下面是一些关于P码文件的操作。
inmem%罗列出内存中的P码(伪代码)文件
Pcodefilename%在当前目录下生成filename.p,该文件可以当作filename.m文件一样使用,其他用户可以使用该代码,但不能看到代码的内容。
Pcodefilename-inplace%在filename.m所在目录下生成filename.p
Clearfilename%清除内存中的filename.p文件
Clearfunctions%清除内存中的所有P文件
MatlabGUI设计
高效率方法:
利用guide界面和相应的M文件共同编辑,关键点GUI数据结构:
在guide打开之时就已经在M文件的主函数里面创建了包含所有句柄的结构体,对于用户新创建的数据要实现共享方法,h=handle;handles.tag(控件的标签)(rand数据型)=h;guidata(hObject,handles);之后就可以通过handles来访问句柄或数据。
对于在guide界面中创建的控件可以直接用handles.tag来访问因为handles.tag在M文件创建的时候就创建在了handles结构体中。
Delete函数syntax:
delete(handle)deletefilenamedelete(‘filename’)
X=pi:
0.1:
2*pi
Handles.x=x
Guidata(hObject,handles)
Num2str:
convertnumberintostring
Str2num:
convertstringintonumber
Quiver(x,y,u,v)画速度矢量u,v为分量x,y为起点
Quiver(x,y,u,v,scale,’linestyle(-.^r)’)
符号运算:
多项式的表示:
向量表示法[1,2,3]是一个numericclass
Poly(矩阵)给出矩阵的特征多项式同样是一个numericclass
Poly2str([1,2,3],’x’)转换成symbolicobject
Roots(numericclass多项式)
Solve(符号表达式)给出解析解
Compose(F,G,x,y,z)复合函数F(G)
当F中有多个符号变量时要指明x,当G中有多个符号变量时要指明y其中代替情况是:
xyz(若未指明则x=findsym(F,1)y=findsym(G,1))例如:
f=sym('a*x+y')
g=sym('t*u+v')查询符号变量其得到的结果是字符不是符号变量
compose(f,g,z)
symsz
compose(f,g,z)
findsym(f,1)
findsym(g,1)
f(function函数)inverse(相反的)求反函数
collect合并同类项
h=sym('a*x^2+b*x+2*b+b^2')
collect(h)
collect(h,b)此为错误语句用sym定义的符号表达式仅指定findsym(h,1)为符号变量,对于b不识别Undefinedfunctionorvariable'b'.
expand为符号展开函数一般针对的是多项式,指数函数,三角函数,对数函数
factor(因数,要素)对表达式也可以对数做因式分解
关于排列组合的函数
以下是几个常用的排列、组合与阶乘等函数。
1、combntns(x,m)
列举出从n个元素中取出m个元素的组合。
其中,x是含有n个元素的向量。
2、perms(x)
给出向量x的所有排列。
3、nchoosek(n,m)
从n各元素中取m个元素的所有组合数。
nchoosek(x,m)从向量x中取m个元素的组合
4、factorial(n)
求n的阶乘。
5、prod(n:
m) %求排列数:
m*(m-1)*(m-2)*…*(n+1)*n prod(1:
2:
2n-1)或prod(2:
2:
2n) %求(2n-1)!
!
或(2n)!
!
6、cumprod(n:
m)
输出一个向量[n n*(n+1) n(n+1)(n+2) … n(n+1)(n+2)…(m-1)m]
7、gamma(n)
求n!
8、v='n!
';
vpa(v)
更详细资料如下:
nchoosek
Binomial coefficient or all combinations
Syntax:
C = nchoosek(n,k)
函数描述:
从 n 个元素中 一次选 k 个元素的所有组合数 C(注意,C是一个数值)。
C = n!
/((n–k)!
k!
);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 26 matlab 笔记 应用