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列组成的子矩阵。

评论