资源描述:
《matlab数组和数组运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB数组和数组运算MATLAB数组MATLAB的一个重要功能是能够进行向量和矩阵运算,MATLAB中的多数功能也是基于向量和矩阵运算。因此,矩阵在MATLAB中具有非常重要的位置。在MATLAB中向量和矩阵主要由数组表示,数组是MATLAB的核心数据结构。数组是计算机编程语言上对一组数的通称,矩阵和向量是数学上的概念。数组包括矩阵和向量,一维数组是向量,二维数组是矩阵。所以,矩阵是数组的子集。2MATLAB数组的创建——一维数组MATLAB一维数组的创建主要包括一维行向量和一维列向量的创建。创建一维行向量和一维列向量主要的区别在于创建数组时,数组元素是按照行排列还是按照
2、列排列。一维行向量:把所有数组元素用空格或者逗号分隔,并用方括号把所有数组元素括起来。一维列向量:把所有数组元素用分号分隔,并用方括号把所有数组元素括起来。3MATLAB数组的创建——一维数组等差数组的创建利用冒号生成等差数组,格式Start_val:Step:Stop_valStart_val表示等差数组的第一个元素Step表示步长,步长为正代表递增,步长为负,代表递减,默认为1Stop_val表示等差数组的最后一个元素linspace函数:linspace(Start_val,Stop_val,N),默认N=100等比数组的创建logspace函数:logspace(Star
3、t_val,Stop_val,N),默认N=50产生10^Start_val到10^Stop_val包含N个元素的等比数组4MATLAB数组的创建——二维数组创建二维数组与创建一维数组的方式类似。在创建二维数组时,用逗号或者空格区分同一行的不同元素,用分号区分不同行。5MATLAB数组的创建——其他数组生成函数函数说明zeros产生元素全为0的数组ones产生元素全为1的数组eye产生单位数组rand产生均匀分布的随机数数组,数值范围(0,1)randn产生均值为0,方差为1的正态分布随机数数组diag获取数组的对角线元素,也可生成对角数组6MATLAB数组的创建——其他数组生成
4、函数zeros、ones、rand、randn、eye上述几个函数调用格式相同:A=zeros(n)返回一个nn阶零数组;A=zeros(m,n)返回一个mn阶零数组;函数diag()函数功能:获取数组的对角线元素,也可生成对角数组a=diag(A)返回A的对角元素,a是列向量;B=diag(a)返回一个nn阶数组;7MATLAB数组的创建——其他数组生成函数示例>>A=eye(3)A=100010001>>A=rand(3)A=0.95010.48600.45650.23110.89130.01850.60680.76210.8214>>A=zeros(3)A=00000
5、0000>>A=ones(2,3)A=1111118MATLAB数组的创建——其他数组生成函数示例>>A=rand(3,5)A=0.42180.95950.84910.75770.65550.91570.65570.93400.74310.17120.79220.03570.67870.39220.7060>>b=diag(A)b=0.42180.65570.6787>>C=diag(b)C=0.42180000.65570000.67879MATLAB数组寻址数组中总是包含多个元素,因此在对数组的单个元素或者多个元素进行访问时,需要对数组进行寻址运算。在MATLAB中,数组寻址
6、是通过对数组下标的访问来实现的。提取数组A的第m行、第n列的元素值,使用A(m,n)可以得到。同样,将矩阵A的第m行、第n列的元素值赋为val,使用命令A(m,n)=val。如果在数组寻址时,行或列的值大于数组的大小,则出错。10MATLAB数组寻址如果需要访问数组中的多个数据,可以通过下标数组进行例如:A([1,2],[2,3])利用冒号操作符也可以访问数组——裁减数组例如:A(2:3,1:2)A(1:2:4,1:2)A(1:2:4,:)A(:,1:2)A(:,:)11MATLAB数组的查找数组的查找函数是find,它能够查找数组中的非零数组元素,并返回其数组索引值。find函
7、数在MATLAB中的使用语法形式:a=find(A)返回数组A中非零元素的单下标索引注意单下标索引是按列计数(2)[a,b]=find(A)返回数组A中非零元素的双下标索引放方式。12MATLAB数组的排序在很多时候我们需要对一个给定的数据向量进行排序。为完成这一操作,MATLAB提供了sort函数,该函数将任意给定的序列进行排序。sort函数的调用格式有:B=sort(A)B=sort(A,dim)B=sort(...,mode)[B,IX]=sort(...)其中的B为保存结