MATLAB之矩阵的基本运算
1.1 数值矩阵的生成
1.实数值矩阵输入
输入矩阵方法:用键盘上方括号“ [ ]
”代替矩阵括号。矩阵数据在方括号内按行输入,同一行相邻元素用空格(或逗号)隔开,相邻两行用分号“;”隔开。 例如:
>> A=[1 2 3 4;5,6,7,8;9 10 11
12] %输出3行4列的矩阵A
A =
1 2 3 4
5 6 7 8
9 10 11 12
2.复数矩阵输入
>> R=[1 2 3;4 5 6], M=[11 12 13;14 15 16]
R =
1 2 3
4 5 6
M =
11 12 13
14 15 16
>> CN=R+i*M
CN =
1.0000
+11.0000i 2.0000
+12.0000i 3.0000
+13.0000i
4.0000
+14.0000i 5.0000
+15.0000i 6.0000
+16.0000i
1.3 特殊矩阵的生成
命令 全零阵
函数 zeros
格式 B =
zeros(n) %生成n×n全零阵
B =
zeros(m,n) %生成m×n全零阵
B = zeros([m
n]) %生成m×n全零阵
B =
zeros(d1,d2,d3…) %生成d1×d2×d3×…全零阵或数组
B = zeros([d1 d2
d3…]) %生成d1×d2×d3×…全零阵或数组
B =
zeros(size(A)) %生成与矩阵A相同大小的全零阵
命令 单位阵
函数 eye
格式 Y = eye(n) %生成n×n单位阵
Y = eye(m,n) %生成m×n单位阵
Y = eye(size(A)) %生成与矩阵A相同大小的单位阵
命令 全1阵
函数 ones
格式 Y =
ones(n) %生成n×n全1阵
Y =
ones(m,n) %生成m×n全1阵
Y = ones([m
n]) %生成m×n全1阵
Y =
ones(d1,d2,d3…) %生成d1×d2×d3×…全1阵或数组
Y = ones([d1 d2
d3…]) %生成d1×d2×d3×…全1阵或数组
Y =
ones(size(A)) %生成与矩阵A相同大小的全1阵
重点掌握:
生成m阶单位方阵:eye(m)
生成m×n阶单位矩阵:eye(m,n)
生成m阶全1方阵:ones(m)
生成m×n阶全1矩阵:ones(m,n)
生成m阶全0方阵:zeros(m)
生成m×n阶全0矩阵:zeros(m,n)
>> clear
>>
E=eye(2,3) %生成2行3列的单位方阵
E =
1 0 0
0 1 0
>>
B=ones(2,3) %生成2行3列的全1矩阵
B =
1 1 1
1 1 1
1.4向量、矩阵的访问与赋值
更改、增加或删除向量的元素。 例如:
>> clear
>> x=[3 7 4
5] %输出4维行向量x
x =
3 7 4 5
>> x(3) =
2 %更改第三个元素
x =
3 7 2 5
注:x(i)表示向量x的第i个分量。
>> x(6) =
10 %加入第六个元素(给第六个元素赋值)
x =
3 7 2 5 0 10
>> x(4) = [
] %删除第四个元素
x =
3 7 2 0 10
注:在对第六个元素进行赋值时,若未曾对第五个元素赋值,则默认为零。上述运算,结果均返回为变量x。
MATLAB亦可取出向量的一个元素或一部份来做运算。 例如:
>> clear
>> x=[1 2 3 4];y=[2 4 6 8 0];
>>
x(2)*3+y(4) %取出x的第二个元素和y的第四个元素来做运算
ans =
14
>>
y(2:4)-1 %取出y的第二至第四个元素来做运算
ans =
3 5 7
在上例中,2:4代表一个由2、3、4组成的向量,同样的方法可用于产生公差为1的等差数列,例如:
>> z = 7:16
z =
7 8 9 10 11 12 13 14 15 16
若不希望公差为1,则可将所需公差直接至于4与13之间,例如:
>> w =
7:3:16 %公差为3的等差数列
w =
7 10 13 16
同样地,我们可以对矩阵进行各种处理。 例如:
>> clear
>> A=sym([1 2 3 4;5 6 7 8;9 10 11
12]) %输出一个3行4列的矩阵
A =
[ 1, 2, 3, 4]
[ 5, 6, 7, 8]
[ 9,
10, 11, 12]
>> A(2,3) =
5 %改变第二列,第三行的元素值
A =
[ 1, 2, 3, 4]
[ 5, 6, 5, 8]
[ 9, 10, 11, 12]
注:A(i,j)表示矩阵A的(I,j)元,括号中,逗号前面表示行,后面表示列
>>
A(2,:) %第2行的所有元素
ans =
[ 5, 6, 5, 8]
>> B =
A(2,1:3) %取出部份矩阵B
B =
[ 5, 6, 5]
>> A = [A
B'] %将B转置后以列向量并入A
A =
[ 1, 2, 3, 4, 5]
[ 5, 6, 5, 8, 6]
[ 9, 10, 11,
12, 5]
注:矩阵合并,若按照行的形式合并,则用;隔开;若按列的形式合并,则用空格或逗号隔开,例如:
>> A(:, 2) = [
] %删除第二列(:代表所有行)
A =
[ 1, 3, 4, 5]
[ 5, 5, 8, 6]
[ 9, 11,
12, 5]
>>