当前位置:文档之家› matlab 基础函数用法总结

matlab 基础函数用法总结

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(N>2)维矩阵,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(X>2)返回包含X中非零元素的行索引值的向量r =12包含X中非零元素的列索引值的向量c =13包含N=(X>2)非零元素的逻辑矩阵v =11记住,当你用find指令处理一个逻辑表达的时候,输出向量v不包含输入矩阵的非零元素的索引值。

而是包含评估逻辑表达之后返回的非零值。

例5在向量上的一些操作x = [11 0 33 0 55]';find(x)ans =135find(x == 0)ans =24find(0 < x & x < 10*pi)ans =1例6对于矩阵M = magic(3)M =8 1 63 5 74 9 2find(M > 3, 4)返回前四个M>3的索引值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下三角形> 右三角形< 左三角形p五角星h六边形以下面的例子说明用法:>> x=0:pi/15:2*pi;>> y1=sin(x); y2=cos(x);>> plot(x,y1,’b:+’,x,y2,’g-.*’)plot(1:n,ObjV{1},'-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)命令;把一个画面分成m×n个图形区域, 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、这个数组可以是字符串,也可以不是,所以''不是必须的,有时候甚至是多余的。

相关主题