8.矩阵及运算
1. 数组
MATLAB的运算事实上是以数组 (array) 及矩阵 (matrix) 方式在做运算。
建立一个数组时,如果是要个别键入元素,须用中括号[ ] 将元素置于其中。数组为一维元素所构成,而矩阵为多维元素所组成,例如
» x=[1 2 3 4 5 6 7 8] ;% 一维 1x8 阵列
» x = [1 2 3 4 5 6 7 8; 4 5 6 7 8 9 10 11] ; % 二维 2x8 矩阵,以;区隔各列的元素
» x = [1 2 3 4 5 6 7 8 % 二维 2x8 矩阵,各列的元素分二行键入
4 5 6 7 8 9 10 11] ;
» x(3)% x的第三个元素
ans =
2
» x([1 2 5])% x的第一、二、五个元素
ans =
1 4 3
x(1:5)% x的第前五个元素
ans =
1 4 2 5 3
» x(10:end)% x的第十个元素后的元素
ans =
8 6 9 7 10 8 11
» x(10:-1:2)% x的第十个元素和第二个元素的倒排
ans =
8 5 7 4 6 3 5 2 4
» x(find(x>5))% x中大于5的元素
ans =
6
7
8
6
9
7
10
8
11
» x(4)=100%给x的第四个元素重新给值
x =
1 2 3 4 5 6 7 8
4 100 6 7 8 9 10 11
» x(3)=[]% 删除第三个元素
x =
Columns 1 through 12
1 4 100 3 6 4 7 5 8 6 9 7
Columns 13 through 15
10 8 11
» x(16)=1% 加入第十六个元素
x =
Columns 1 through 12
1 4 100 3 6 4 7 5 8 6 9 7
Columns 13 through 16
10 8 11 1
2 建立数组
上面的方法只适用于元素不多的情况,但是当元素很多的时候,则须采用以下的方式:
» x=(0:0.02:1); % 以:起始值=0、增量值=
» x=linspace(0,1,100); % 利用linspace,以区隔起始值=0终止值=1之间的元素数目=100
»a=[]%空矩阵
a =
[]
» zeros(2,2)%全为0的矩阵
ans =
0 0
0 0
» ones(3,3) %全为1的矩阵
ans =
1 1 1
1 1 1
1 1 1
» rand(2,4);随机矩阵
»a=1:7, b=1:0.2:5;%更直接的方式
»c=[b a]; %可利用先前建立的阵列 a 及阵列 b ,组成新阵列
» a=1:1:10;
» b=0.1:0.1:1;
» a+b*I%复数阵列
ans =
Columns 1 through 4
1.0000 + 0.1000i 2.0000 + 0.2000i 3.0000 + 0.3000i 4.0000 + 0.4000i
Columns 5 through 8
5.0000 + 0.5000i 6.0000 + 0.6000i 7.0000 + 0.7000i 8.0000 + 0.8000i
Columns 9 through 10
9.0000 + 0.9000i 10.0000 + 1.0000i
在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented)的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址
3 子矩阵
通过一个矩阵产生另一个矩阵的方法(上面已经有例子)
假如一个矩阵A
则 A(m1:m2 ,n1:n2)为由A的第m1到m2行,第n1列到n2列组成的子矩阵。
评论