matlab 基础函数用法总结.doc_第1页
matlab 基础函数用法总结.doc_第2页
matlab 基础函数用法总结.doc_第3页
matlab 基础函数用法总结.doc_第4页
matlab 基础函数用法总结.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Size 函数用法例如:1,2,3;4,5,6是一个2*3的矩阵,则:d = size(X); %返回矩阵的行数和列数,保存在d中m,n = size(X)%返回矩阵的行数和列数,分别保存在m和n中m = size(X,dim);%返回矩阵的行数或列数,dim=1返回行数,dim=2返回列数2、Corrcoef 函数用法corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x与y的相关系数和y与x的相关系数,两个是相等的3、sort函数用法sort(X) 功能:返回对向量X中的元素按列升序排列的新向量。Y, I = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值ascend为升序,descend为降序4、Legend 函数用法legend(string1,string2,string3,) 分别将字符串1、字符串2、字符串3标注到图中,每个字符串对应的图标为画图时的图标。 例如: plot(x,sin(x),.b,x,cos(x),+r) legend(sin,cos) /这样就可以把”.”标识为”sin”,把”+”标识为“cos” 5、find 函数用法找到非零元素的索引和值语法:1. ind = find(X)2. ind = find(X, k)3. ind = find(X, k, first)4. ind = find(X, k, last)5. row,col = find(X, .)6. row,col,v = find(X, .)说明:1. ind = find(X) 找出矩阵X中的所有非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量ind中。如果X是一个行向量,则ind是一个行向量;否则,ind是一个列向量。如果X不含非零元素或是一个空矩阵,则ind是一个空矩阵。2. ind = find(X, k) 或 3. ind = find(X, k, first)返回第一个非零元素k的索引值。k必须是一个正数,但是它可以是任何数字数值类型。4. ind = find(X, k, last)返回最后一个非零元素k的索引值。5. row,col = find(X, .)返回矩阵X中非零元素的行和列的索引值。这个语法对于处理稀疏矩阵尤其有用。如果X是一个N(N2)维矩阵,col包括列的线性索引。例如,一个5*7*3的矩阵X,有一个非零元素X(4,2,3),find函数将返回row=4和col=16。也就是说,(第1页有7列)+(第2页有7列)+(第3页有2列)=16。6. row,col,v = find(X, .)返回X中非零元素的一个列或行向量v,同时返回行和列的索引值。如果X是一个逻辑表示,则v是一个逻辑矩阵。输出向量v包含通过评估X表示得到的逻辑矩阵的非零元素。 例1X = 1 0 4 -3 0 0 0 8 6;indices = find(X)返回X中非零元素的线性索引值。indices =1 3 4 8 9例2你可以用一个逻辑表达方式定义X。例如find(X 2)返回X中大于2的元素的相对应的线性索引值。ans =3 8 9 例4下列表示r,c,v = find(X2)返回包含X中非零元素的行索引值的向量r =12包含X中非零元素的列索引值的向量c =13包含N=(X2)非零元素的逻辑矩阵v =11记住,当你用find指令处理一个逻辑表达的时候,输出向量v不包含输入矩阵的非零元素的索引值。而是包含评估逻辑表达之后返回的非零值。例5在向量上的一些操作x = 11 0 33 0 55;find(x)ans =135find(x = 0)ans =24find(0 x & x 3, 4)返回前四个M3的索引值ans =13566、plot 函数用法 基本形式 y=0 0.58 0.70 0.95 0.83 0.25; plot(y)生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 x=linspace(0,2*pi,30); % 生成一组线性等距的数值 y=sin(x); plot(x,y)生成的图形是上30个点连成的光滑的正弦曲线。多重线在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2)则可以画出多重线。另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如: x=linspace(0,2*pi,30); y=sin(x); plot(x,y) hold on z=cos(x); plot(x,z) hold off线型和颜色MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:MATLAB中提供的线型属性有:线型说明标记符说明颜色说明-实线(默认)+加号符r红色-双划线o空心圆g绿色:虚线*星号b蓝色:.点划线.实心圆c青绿色x叉号符m洋红色s正方形y黄色d菱形k黑色上三角形w白色v下三角形 右三角形 x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,b:+,x,y2,g-.*) plot(1:n,ObjV1,-go,LineWidth,1, MarkerFaceColor,g) 线性 - 颜色 g 标记符o 线宽 LineWidth 1 MarkerFaceColo 标识符填充颜色 g网格和标记在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) grid xlabel(Independent Variable X) ylabel(Dependent Variables Y and Z) title(Sine and Cosine Curves)也可以在图形的任何位置加上一个字符串,如用: text(2.5,0.7,sinx)表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令: gtext(sinx)在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。坐标系的控制在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:axis(xmin xmax ymin ymax) 中分别给出x轴和y轴的最大值、最小值axis equal 或 axis(equal) x轴和y轴的单位长度相同axis square 或 axis(square) 图框呈方形axis off 或 axis(off) 清除坐标刻度坐标轴控制:xlim和ylim函数,控制坐标显示的范围,例如xlim(0 3);如果要x,y坐标同时控制显示,则axis(xmin xmax ymin ymax) 多幅图形可以在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成mn个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); u=2*sin(x).*cos(x); v=sin(x)./cos(x); subplot(2,2,1),plot(x,y),axis(0 2*pi 1 1),title(sin(x) subplot(2,2,2),plot(x,z),axis(0 2*pi 1 1),title(cos(x) subplot(2,2,3),plot(x,u),axis(0 2*pi 1 1),title(2sin(x)cos(x) subplot(2,2,4),plot(x,v),axis(0 2*pi 20 20),title(sin(x)/cos(x)图形的输出在数学建模中,往往需要将产生的图形输出到Word文档中。通常可采用下述方法:首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开图形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可7、disp函数MATLAB帮助文件里是这么写的:disp(X) displays the array, without printing the array name.也就是说,disp显示数组,但不显示数组名称。包括你的问题在内,我总结这个函数使用需注意的三点如下:1、这个数组可以是字符串,也可以不是,所以不是必须的,有时候甚至是多余的。如: disp(sqrt(2) 1.4142 disp(sqrt(2)sqrt(2)2、X是一个数组,或者说不能是多个数组。如disp(X,Y)就会犯错: disp(根号2=,sqrt(2)Error using dispToo many input arguments.当需要输出多个数组时,就需要把多个数组用括起来形成一个数组,这样就相当于disp()里只有一个变量了,在title等命令中也有用到。上面的例子应该改成: disp(根号2=,num2str(sqrt(2)根号2=1.41423、注意数据和字符串不能混在一起,这个我们经常犯错。例如,上面的例子,如果不用num2str函数的话: disp(根号2=,sqrt(2)根号2=所以,disp和num2str的用法一定要搞懂,才能符合我们的使用需求。其他的单变量函数如title、xlabel等等常用的函数中,这些道理是相通的matlab的disp函数1.输出字符串:disp(my test)my test2.输出数字: test=3; disp(test)33.同时输出字符串和数字: test=3; disp(my test=,num2str(test)my test=38、num2str函数 在matlab中,无论是内建函数还是工具箱函数, 2很常见, 这可能是因为2英文two和to发音相同。而2写起来也比较简单。 所以很多转换类函数都用2来命名而非to。比如number to string, 不是命名为numTostr而num2str。函数功能: 把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。语法格式:str = num2str(A)把数组A中的数转换成字符串表示形式。str = num2str(A, precision)把数组A转换成字符串形式表示,precision表示精度, 比如precision为3表示保留最多3位有效数字, 例如 :0.5345转换后为0.534,1.2345转换后为1.23。即从左边第一个不为0的数开始保留3个数值。str = num2str(A, format)按format指定格式进行格式化转换,通常%11.4g是默认的。相关函数: mat2str, int2str, str2num, sprintf, fprintfinput函数 A = input(提示信息,选项)如果在input函数调用时采用s选项,则允许用户输入一个字符串。例如想输入一个人的姓名,可采用命令:xm=input(What”s your name:,s);例判断输入三个实数能否构成三角形 A=input(请输入三角形的三条边:); if A(1)+A(2)A(3)&A(1)+A(3)A(2)&A(2)+A(3)A(1) p=(A(1)+A(2)+A(3)/2; s=sqrt(p*(p-A(1)*(p-A(2)*(p-A(3);(注意 * ) disp(三角形面积为:,num2str(s);(注意逗号,注意冒号为英文下的) else disp(不能构成一个三角形。) end 在命令窗口贴上代码,回车出现 请输入三角形的三条边: (提示信息) 输入 3,4,5 (注意这里是一个数组整体输入) 得到 :三角形面积为:69、 repmat函数 功能 :复制和平铺矩阵 格式 B = repmat(A,m,n) %将矩阵A复制mn块,即B由mn块A平铺而成。B = repmat(A,m n) %与上面一致B = repmat(A,m n p) %B由mnp个A块平铺而成repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的mn矩阵。B=repmat(A,m,n):把矩阵A复制n*m份,并堆叠构成矩阵B,矩阵B的大小为size(A,1)*m, size(A,2)*n。10、 reshape函数B = reshape(A,m,n)将矩阵A的元素返回到一个mn的矩阵B。如果A中没有mn个元素则返回一个错误。B = reshape(A,m,n,p,.) or B = reshape(A,m n p .)把A中元素进行重塑成mnp的矩阵,特别地,指定的维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论