文章目录
矩阵合并
a=zeros(2,3)
b=ones(2,4)
c=7:9
d=[a b] % 水平合并,行数相同
e=[a;c] % 垂直合并,列数相同
a =
0 0 0
0 0 0
b =
1 1 1 1
1 1 1 1
c =
7 8 9
d =
0 0 0 1 1 1 1
0 0 0 1 1 1 1
e =
0 0 0
0 0 0
7 8 9
>>
删除行、列:(赋予空矩阵/数组)
a=magic(4)
a(3,:)=[]
a(3,:)
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
a =
16 2 3 13
5 11 10 8
4 14 15 1
ans =
4 14 15 1
>>
共轭转置
a=[2i-5 3i+1;8 5i]
b=a' % 共轭转置
c=conj(a') % 只转置
d= a.' % 只转置
a =
-5.0000 + 2.0000i 1.0000 + 3.0000i
8.0000 + 0.0000i 0.0000 + 5.0000i
b =
-5.0000 - 2.0000i 8.0000 + 0.0000i
1.0000 - 3.0000i 0.0000 - 5.0000i
c =
-5.0000 + 2.0000i 8.0000 + 0.0000i
1.0000 + 3.0000i 0.0000 + 5.0000i
d =
-5.0000 + 2.0000i 8.0000 + 0.0000i
1.0000 + 3.0000i 0.0000 + 5.0000i
>>
矩阵加减法需要维度相同,但可以和标量运算
单个数在matlab中是以标量形式存储的
>> a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> a+2
ans =
10 3 8
5 7 9
6 11 4
矩阵的加减乘除幂运算
矩阵乘法除法
乘法只要AB满足线代的可乘条件就行
除法则比较复杂,有左除右除两种
a=magic(3)
b=pascal(3)
c=a/b % 要求a,b列数相同(c*b=a,a是被除数,b是除数)
d=a\b % 要求a, b行数相同 (a*d=b,b是被除数,a是除数)
a =
8 1 6
3 5 7
4 9 2
b =
1 1 1
1 2 3
1 3 6
c =
27 -31 12
1 2 0
-13 29 -12
d =
0.0667 0.0500 0.0972
0.0667 0.3000 0.6389
0.0667 0.0500 -0.0694
>> c*b
ans =
8 1 6
3 5 7
4 9 2
>> a*d
ans =
1.0000 1.0000 1.0000
1.0000 2.0000 3.0000
1.0000 3.0000 6.0000
>>
乘方:
a=pascal(3) % 对称正定,元素为pascal三角,逆矩阵的元素均为整数
b=a^2
c=a*a
a =
1 1 1
1 2 3
1 3 6
b =
3 6 10
6 14 25
10 25 46
c =
3 6 10
6 14 25
10 25 46
>>
矩阵元素的查找,排序,求和,求积,差分
矩阵元素的查找
a=pascal(3) % 对称正定,元素为pascal三角,逆矩阵的元素均为整数
b=find(a) % 返回矩阵a中非零元素的单下标
c=find(a>5)
a(find(a==1))=10
a =
1 1 1
1 2 3
1 3 6
b =
1
2
3
4
5
6
7
8
9
c =
9
a =
10 10 10
10 2 3
10 3 6
>>
矩阵元素排序:
a=magic(3)
b=sort(a) % 按列升序排序
c=sort(a,2) % 按行升序排序
d=sort(a,'descend') % 按列降序排序
e=sort(a,2,'descend') % 按行降序排序
a =
8 1 6
3 5 7
4 9 2
b =
3 1 2
4 5 6
8 9 7
c =
1 6 8
3 5 7
2 4 9
d =
8 9 7
4 5 6
3 1 2
e =
8 6 1
7 5 3
9 4 2
>>
向量元素排序
a=[2 34 5 7 1 3 7 45]
b=sort(a) % 升序
a =
2 34 5 7 1 3 7 45
b =
1 2 3 5 7 7 34 45
>>
矩阵元素求和
a=magic(3)
b=sum(a) % 每列求和
c=sum(a,2) % 每行求和
d=cumsum(a) % 按列递次求和
e=cumsum(a,2)
f=sum(sum(a)) % 所有元素求和
a =
8 1 6
3 5 7
4 9 2
b =
15 15 15
c =
15
15
15
d =
8 1 6
11 6 13
15 15 15
e =
8 9 15
3 8 15
4 13 15
f =
45
>>
矩阵元素求积
a=magic(3)
b=prod(a) % 每列求积
c=prod(a,2) % 每行求积
d=cumprod(a) % 按列递次求积
e=cumprod(a,2)
a =
8 1 6
3 5 7
4 9 2
b =
96 45 84
c =
48
105
72
d =
8 1 6
24 5 42
96 45 84
e =
8 8 48
3 15 105
4 36 72
>>
矩阵元素差分
a=magic(3)
b=diff(a) % 各列差分,大行号减小行号,同diff(a,1,1)
c=diff(a,2)% 二阶列差分,即对一阶差分再进行一阶差分运算,相当于diff(b)
d=diff(a,1,2) % 各行差分
a =
8 1 6
3 5 7
4 9 2
b =
-5 4 1
1 4 -5
c =
6 0 -6
d =
-7 5
2 2
5 -7
>>