今天,为大家分享一下MATLAB中最入门的知识——数组(矩阵)的相关内容,在MATLAB中,数组又称为矩阵,当其行数或列数为1时,又可称为行向量或列向量。MATLAB中的运算最核心的是对于矩阵的运算。
首先,从数组的创建开始。
1.数组元素的输入方式——相关的内容已在上文中有所描述,在此处不作过多赘述,可查询MATLAB每周练——2023.11.20(第一周)-CSDN博客 。
2.等差数组的创建
使用语法为:数组名=起始值:增量(增量可正可负可省略,省略时默认为1):结束值
如:
当省略增量时:
3.特殊数组的创建
eye | 单位矩阵 | Y=eye(n);Y=eye(m,n);Y=eye(size(A)) |
linspace | 线性分布向量~均匀分布 | y=linspace(a,b);y=linspace(a,b,n) |
ones | 全部元素为1 | X=ones(n);X=ones(m,n);X=ones([m,n]) |
zeros | 全部元素为0 | Z=zeros(n);Z=zeros(m,n);Z=zeros([m,n]) |
rand | 随机数组(元素均匀分布) | x=rand;x=rand(n);x=rand(m,n);x=rand(size(A)) |
randn | 随机数组(元素正态分布) | z=randn;z=randn(n);z=randn(m,n);z=randn(xize(A)) |
4.对数组的操作
①数组的索引
对数组的索引通常为对数组元素的索引,在索引中,通常利用下标进行索引。如:
A(m,n)表示矩阵A的m行n列的对应元素。
也可以对元素的整行或整列元素进行索引,使用语法为:
A(m,:)表示对矩阵A的m行元素全部进行索引;A(:,n)表示对矩阵A的n行元素全部进行索引。
具体应用如下:
> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A(2,3)
ans =
6
>> A(2,:)
ans =
4 5 6
>> A(:,3)
ans =
3
6
9
>>
②数组的拓展
对数组的拓展主要是对元素进行拓展,其未拓展的元素自动填充为0,如对3×3的数组进行拓展,使其第4行第1列元素为2,即可使用命令A(4,1)=2;即可实现该目标,如下:
>> A(4,1)=2
A =
1 2 3
4 5 6
7 8 9
2 0 0
③数组元素的查找
对数组元素进行查找通常用到find函数,使用语法为[i,j]=find(X),即在数组X中寻找不为0的元素对应的下标,也可用来查找是否存在某个值,使用如下:
>> X=[1,2,3,4,5,6,7,8,9]
X =
1 2 3 4 5 6 7 8 9
>> [i,j]=find(X)
i =
1 1 1 1 1 1 1 1 1
j =
1 2 3 4 5 6 7 8 9
>> find(X>6)
ans =
7 8 9
④数组的排序
对数组的排序通常使用sort函数,使用语法为:B=sort(A,dim,mode),其中,dim为所要排序的维度,mode为排序模式,当mode为1时为按列排列,当mode为2时为按行排序,默认为按列排列,有ascend升序模式与descend降序模式,默认为升序模式。使用如下:
>> A
A =
3 6 5
7 -2 4
1 0 -9
>> B=sort(A,1)
B =
1 -2 -9
3 0 4
7 6 5
>> B=sort(A,2)
B =
3 5 6
-2 4 7
-9 0 1
>> B=sort(A)
B =
1 -2 -9
3 0 4
7 6 5
>> B=sort(A,2,'descend')
B =
6 5 3
7 4 -2
1 0 -9
⑤数组维度的计算
对数组维度的计算使用size函数,具体内容可在MATLAB每周练——2023.11.20(第一周)-CSDN博客中进行查阅,在此处不做过多赘述。
⑥矩阵的复制
矩阵的复制通常使用repmat函数,使用语法为:B=repmat(A,m,n),即将矩阵A作为一个整体拓展为一个m行n列的新矩阵B,使用如下:
>> A=[1,2;3,4]
A =
1 2
3 4
>> B=repmat(A,2,2)
B =
1 2 1 2
3 4 3 4
1 2 1 2
3 4 3 4
5.最后对数组的运算进行论述
数组的运算更多的是数组中元素的运算(同维度),主要有加减乘除以及幂运算几种运算方式。
>> A=[1,2;3,4]
A =
1 2
3 4
>> B=ones(2)
B =
1 1
1 1
>> c1=A+B
c1 =
2 3
4 5
>> C2=A-B
C2 =
0 1
2 3
>> C3=A.*B
C3 =
1 2
3 4
>> C4=A./B
C4 =
1 2
3 4
切记,在对数组的元素进行乘除运算时是点乘和点除运算,否则需要满足矩阵乘除的条件。
今天的分享就到此为止,希望大家可以加深对数组的创建以及相关函数的使用,在对数组的使用中融会贯通,谢谢大家!