Matlab数组创建、数组寻址、数组排序、数组检测、数组结构
一、数组创建
1、一维数组的创建 P43
- 直接输入
a=[1,2;3,4]
- 用:输入
a=2:3:12 %生成步长为3的向量
- x=linspace(x1,x2,n) %在x1和x2之间生成n个线性分布的等差数列数组x
- x=logspace(a,b,n) %创建第一个数是10^a, 最后一个数是10^b,的n个等比数列数组x
2、二维数组的创建 P45
- ones(m,n) % 产生m*n的全1矩阵
- eye(m) %产生m*m的单位矩阵
- diag(a) %取矩阵a的对角元
- rand(m,n) %生成m*n的均匀分布的伪随机数
- randn(m,n) %生成m*n的标准正态分布的伪随机数
- randsrc(m,n) %生成m*n的矩阵,元素为随机出现的-1或1
二、数组寻址
1、一维数组寻址 P46
-
访问其中一个元素
a(5) %对矩阵a的第5个元素进行访问
-
访问多个元素
a([1,3,5]) %对矩阵a第1、3、5个元素进行访问
2、二维数组寻址 P49
- sub2ind(size(a),[2,3],[2,1])
%读取矩阵a中第2行、第2列,第2行、第1 列的两个元素 ( sub2ind()函数:将下标转为索引;sub—subscripts下标,ind—index索引)
>> a=[1,2,3;4,5,6;7,8,9]
a =
1 2 3
4 5 6
7 8 9
>> b=sub2ind(size(a),[2,3],[2,1]) %读取矩阵a中第2行、第2列,第2行、第1 列的两个元素
b =
5 3 %结果5——matlab按列搜索,第2行、第2列元素是第5个数;结果3——第3行、第1列元素是第3个数
>> a(b)
ans =
5 7 %第5个数是5,第3个数是7
三、数组排序
1、一维数组排序 P50
-
[b,index]=sort(a)
%a是一个待排序的数组,b是排序后的数组,index是排序后的数组的各个元素在原数组中的位置
2、一维数组排序 P50
-
[b,index]=sort(a,dim,mode)
%dim表示对行还是列进行排序,dim=1——列(一般省略:变为[b,index]=sort(a,mode) ;dim=2——行(不可省)
%mode表示进行升序还是降序排序,mode=‘descend’——降序; mode=‘ascend’——升序
四、数组检测 P51
- isempty() %检测是否为空数组
- isscalr() %检测是否为单元素的标量数组
- isvecor() %检测是否为具有一行元素或一列元素的一维数组
- issparse() %检测是否为稀疏数组
五、数组结构 P53
-
length()
%求数组的长度:一维数组返回值是元素的个数;二维数组返回值是行数和列数的最大值
-
numel()
%求数组元素的总数:一维数组元素总数就是数组的长度;二维数组就是行数乘以 列数 -
size()
%求数组的行数和列数