您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > Matlab基础知识学习笔记
Matlab基础知识启动MATLAB计算在输入一行语句后按下【Enter】键,MATLAB会立即执行并显示结果;如果要MATLAB一次执行多行语句,则在输入每行语句后按下【Shit+Enter】键,并在输入最后一行语句后按【Enter】键.内存变量查阅、删除的指令操作(1)查询内存变量在指令窗口(CommandWindow)中运行who、whos查询MATLAB的内存变量.这两个指令的差别仅在于获取内存变量信息的简单和详细程度不同.(2)删除内存变量clear删除内存中的所有变量clearV1V2Vn删除内存中的变量V1V2Vn(注意:被删除的变量间用”空格”分隔).编辑调试器的开启单击MATLAB桌面的图标,打开空白的M文件编辑器.单击MATLAB桌面上的图标,填写所选文件名后,再单击【打开】按钮,即可展示响应的M文件编辑器.用鼠标左键双击当目录窗口中的所需M文件,即可直接引出响应的M文件编辑器.HELP命令(1)运行helphelp将得到如何使用help的帮助(2)运行help引出包含一系列主题(topics)分类列表(3)运行helptopic引出具体主题下的函数名(FunName)列表例如:helpelmatElementarymatricesandmatrixmanipulation.Elementarymatrices.zeros-Zerosarray.ones-Onesarray.eye-Identitymatrix.…………(4)运行helpFunName获得集体函数的用法例如:helpeyeEYEIdentitymatrix.EYE(N)istheN-by-Nidentitymatrix.EYE(M,N)orEYE([M,N])isanM-by-Nmatrixwith1'sonthediagonalandzeroselsewhere.…………(5)运行helpbrowser或helpdesk引出“帮助浏览器”.(6)运行指令demo便可以运行演示程序.Matlab简单运算及输入《1》矩阵的输入格式直接输入矩阵时候,矩阵元素用“空格”或者“逗号”隔开,矩阵行用“分号”隔离,整个矩阵放在方括号“[]”内.不必事先对矩阵维数做任何说明.例如:A=[1,2,3;4,5,6;7,8,9]或者A=[123;456;789]还可以分行输入:A=[123;456;789]注意:表达符号一定要在英文状态下输入.MATLAB对矩阵大小写是敏感的.如果不用clear指令清楚,或者重新赋值,那么该矩阵就会一直保存在工作空间中,直到指令窗(CommandWindow)关闭.《2》指令的续行输入MATLAB用3个或3个以上的连续黑点(不是省略号)表示“续行”,即表示下一行是上一行的继续.例如:S=1–1/2+1/3-1/4+…1/5–1/6+1/7–1/8《3》数值、变量和表达式1、数值的记述3-980.0029.881.4e-34.99e232、变量命名规则变量命名规则同VC.3、MATLAB默认的预定义变量预定义变量含义预定义变量含义ans计算结果realmax最大正实数i或j虚单元realmin最小正实数pi圆周率eps机器零阈值inf或Inf无穷大,如1/0nargin函数输入宗量数目NaN或nan非数,如0/0nargout函数输出宗量数目4、运算符和表达式‘/’表示左除,’\’表示右除.对于数而言,左除与右除相同.即a÷b可以写作a/b或者b\a.表达式由变量名、运算符和函数名组成.符号”%”为注释符,相等于VC中的”//”.优先级的规定:指数优先级最高,乘除次之,加减运算级最低.括号可以改变运算顺序.5(5)sqrt,5(5)abs,5exp(5)e,51015e,13377.5、复数和复数矩阵复数zabi,则real(z)=a;imag(z)=b;abs(z)=22ab;%给出复数的模angle(z)=arctan(b/a).%以弧度为单位给出复数z的相角arctanba复数矩阵的格式:A=[1,2;3,4]*i=[I,2i;3i,4i].6、计算38的方根.(1)直接计算a=-8;r=a^(1/3)r=1.0000+1.7321i.(2)显示所有的方根m=[0,1,2];R=abs(a)^(1/3);Theta=(angle(a)+2*pi*m)/3;rrr=R*exp(i*Theta)rrr=1.0000+1.7321i-2.0000+0.0000i1.0000-1.7321i(3)图形表示t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t);plot(x,y,'b:'),gridholdonplot(rrr(1),'.','MarkerSize',50,'color','r')plot(rrr([2,3]),'o','MarkerSize',15,'color','b')axis([-3,3,-3,3]),axissquareholdoffMatlab矩阵及其运算引导1、行向量的定义rowvec=[1.2356];2、列向量的定义colvec=[1.2;3;56];3、逐个元素的分配矩阵B(1,1)=1;B(1,2)=2;B(2,1)=3;B(2,2)=4;B=1234注意:矩阵的下标从1开始计数创建新矩阵1、1矩阵、零矩阵和单位矩阵1矩阵的所有元素全为1,零矩阵的所有元素全为零.ones(n)%建立一个n×n的1矩阵ones(m,n,……,p)%建立一个m×n×……×p的1矩阵ones(size(A))%建立一个和矩阵A同样大小的1矩阵zeros(n)%建立一个n×n的0矩阵zeros(m,n,……,p)%建立一个m×n×……×p的0矩阵zeros(size(A))%建立一个和矩阵A同样大小的0矩阵eye(n)%建立一个n×n的单位矩阵eye(m,n)%建立一个m×n的单位矩阵eye(size(A))%建立一个和矩阵A同样大小的单位矩阵例如:输入OneMatrix=ones(2,3,2)则结果为:OneMatrix(:,:,1)=111111OneMatrix(:,:,2)=111111注意:eye命令只能用来建立二维矩阵2、随机数和随机矩阵rand%产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值.rand+i*rand%产生一个复数随机数rand(n)%产生一个n×n的矩阵,其元素均为0~1之间均匀分布的随机数.rand(m,n,……,p)%产生一个m×n×……×p的矩阵,其元素均为0~1之间均匀分布的随机数.randn%产生零均值、单位方差的正太分布随机数randn(n)%产生一个n×n的矩阵,其元素均为零均值、单位方差的正太分布随机数.randn(m,n,……,p)%产生一个m×n×……×p的矩阵,其元素均为零均值、单位方差的正太分布随机数.3、随机数种子rand(‘state’)%返回一个有35个元素的向量,其中包含随机发生器的当前状态.rand(‘state’,s)%设置随机种子发生器的状态为srand(‘state’,0)%设置随机种子发生器为它的原始状态rand(‘state’,j)%设置随机种子发生器为它的第j种子状态,j为整数rand('state',sum(100*clock));%使用clock命令,使得随机种子发生器在每个不同的时刻都设置为不同的状态.rand(‘state’,arg)%使用MATLAB中的随机种子发生器.randn(‘state’,)%返回一个有两个元素的向量,其中包含正态随机种子发生器的状态randn(‘state’,arg)%根据arg设置正态随机种子发生器,见rand.例如astate=rand('state');astate(1:5)ans=0.86510.51210.90210.81860.6267说明:astate(1:5)表示列出状态向量(35个元素)中的前5个元素的值4、从已存在的向量中产生新的矩阵(一)diag(A)%生成一个由矩阵A主对角线元素组成的列向量,主对角线总是从矩阵左上角开始,对于方阵来说它结束于矩阵的右下角.diag(x)%x为一个n维向量.生成一个n维方阵,它的主对角线元素取自向量x,其余元素的值都为零.diag(A,k)%生成一个由矩阵A第k条对角线元素组成的列向量。k=0为主对角线;K0为主对角线下第k条对角线;k0为主对角线上第K条对角线.dialog(x,k)%生成一个(n+k)*(n+k)维的矩阵,该矩阵的第k条对角线元素取自x,其余元素为0.(n为x的维数)例一:A=123456789diag(A)=159例二:x=[123];diag(x)=100020003例三:(A为例一中的A)diag(A,0)=159diag(A,1)=26diag(A,-1)=48例四:(x为例二中的x)diag(x,1)=0100002000030000diag(x,-2)=00000000001000002000003005、从已存在的矩阵中生成新的矩阵(二)triu(A)%生成一个和A同样大小的上三角矩阵。该矩阵的主对角线及以上元素取自A中的相应元素,其余元素都为0.triu(A,k)%生成一个和A同样大小的上三角矩阵。该矩阵的第k条对角线及以上元素取自A中的相应元素,其余元素都为0.命令triu(A,0)等价于triu(A).tril(A)%生成一个和A同样大小的下三角矩阵。该矩阵的主对角线及以下元素取自A中的相应元素,其余元素都为0.tril(A,k)%生成一个和A同样大小的下三角矩阵。该矩阵的第k条对角线及以下元素取自A中的相应元素,其余元素都为0.命令tril(A,0)等价于tril(A).对于每一个方阵A都有以下关系:A=triu(A)+tril(A)–diag(diag(A));A=triu(A,1)+tril(A,-1)+daig(diag(A)).例一:A=123456789triu(A)=123056009triu(A,1)=023006000tril(A,-1)=000400780例二:B=123456789105triu(B)=123406780005tril(B,-1)=0000500091006、矩阵旋转和矩阵变维fliplr(A)%通过二维矩阵的行元素按照,,1ijinjba交换位置生成一个新的矩阵。这里的”lr”是”left-right”的缩写.A为m×n的矩阵.flipud(A)%通过二维矩阵的列元素按照,1,ijmijba交换位置生成一个新的矩阵。这里的”lr”是”left-right”的缩写.A为m×n的矩阵.flipdim(A,dim)%生成一个在dim维矩阵A内的元素交换位置的多维矩阵.命令flipdim(A,1)等价于flipud(A),命令flipdim(A,2)等价于fliplr(A).rot90(A)%生成一个由矩阵A逆时针旋转090而得到的新矩阵.rot90(A,k)%生成一个由矩阵A逆时针旋转k×090而得到的新矩阵.reshape(A,m,n,……,p)%生成一个m×n×……×p维的矩阵,它的元素以线性索引的顺序从矩阵A中取来.(A有且仅有m×n×……×p个元素).repmat(A,[m,n,……,p])%创建一个和矩阵A有相同元素的m×n×……×p块的多维矩阵.即由m×n×……×p个A拼在一起的矩阵.repmat(x,[m,n,……,p])%创建一个m×n×……×p的多维矩阵,所有元素的值都为标量x.使用该命令比用命令x*ones([m,n,……,p])来创建同一个大矩阵的速度要快.shiftdim(A,n)%矩阵的列移动n步.(n0,向左移;n0,向右移).squeeze(A)%返回一个没有空维的矩阵A.cat(dim,A,B)%将矩阵A和B组合成一个dim维的多维矩阵.permute(A,order)%根据向量order来改变矩阵A中的维数顺序.ipermute(A,order)%进行命令pe
本文标题:Matlab基础知识学习笔记
链接地址:https://www.777doc.com/doc-2882079 .html