26matlab笔记应用Word下载.docx
《26matlab笔记应用Word下载.docx》由会员分享,可在线阅读,更多相关《26matlab笔记应用Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
视角改变和曲面裁剪
视角概念;
默认三维视角是以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
(3)函数句柄的创建:
所有的函数都有一定的作用域,函数的作用域决定了哪些函数可以访问它。
函数句柄必须在其作用域内创建。
能访问函数句柄的都能访问与函数句柄相关的函数。
格式:
functionh=getcubehandle
h=@findecube
functioncube=findecube(x)
cube=x.^3
cubelt=getcubehandle
则cubelt获得了句柄,有时候getcubehandle还有参数。
则cubelt变成了句柄函数,当有参数时就是带有指定参数的句柄函数。
变量值的传递
(1)设置全局变量则所有的子函数不需经过变量传递也可使用了。
设置方法:
在主函数名说明之后,用语句global变量名。
(2)参数传递可变参数用narginnargout配合if语句即可
Function[a,b]=addsub(x,y)
Ifnargout==2
a=x+y
else
b=x-y
(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;
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
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:
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是一个数值)。
/((n–k)!
k!
);