说了三篇各种矩阵的创建,终于进行到下一部分了,太不容易了,今天我们来说说矩阵的操作,说白了就是对矩阵进行一些我们平时计算需要在纸上操作的步骤,用软件肯定要方便得多
1.矩阵的拼接
这个还是很好理解嘛,比如两个3*3的矩阵就可以横着或者竖着拼接到一起,而4*5与4*6的矩阵就只能横着拼了,我们分别称为“水平”和“垂直”拼接
形式也很简单
水平方向C=[A B]或者[A,B]
垂直方向C=[A;B]
和数组创建是一样的记忆方法,“;”就是换行嘛,现在举两个例子并复习一下之前的内容
clear all
c=magic(3)
d=eye(3)
E=[c,d]
F=[c;d]
运行结果如下
c=
8 1 6
3 5 7
4 9 2
d=
1 0 0
0 1 0
0 0 1
E=
8 1 6 1 0 0
3 5 7 0 1 0
4 9 2 0 0 1
F=
8 1 6
3 5 7
4 9 2
1 0 0
0 1 0
0 0 1
MATLAB中,不仅可以用拼接符号,还有很多实用的拼接函数供我们使用,十分方便
这里放上图片
cat(2, A, B)相当于[A, B]
cat(1, A, B)相当于[A; B]|
cat(3,A,B) 左括号后的3表示构造出的矩阵维数;在新的矩阵中第1、2维就是A和B这两个矩阵的行数和列数,第3维是A和B这两个矩阵的矩阵个数,即为2
>> A = [1 2; 3 4];
>> B = [5 6; 7 8];
A =
1 2
3 4
B =
5 6
7 8
cat(1, A, B) 按列连接(列数相同)
ans =
1 2
3 4
5 6
7 8
cat(2, A, B) 按行连接(行数相同)
ans =
1 2 5 6
3 4 7 8
cat(3, A, B) 合成效果如下图
ans(:,:,1) =
1 2
3 4
ans(:,:,2) =
5 6
7 8
blkdiag函数可以将输入的矩阵沿对角线方向构建成一个对角矩阵或方块矩阵,并返回构建好的矩阵C
示例1:构造对角矩阵
A = [1 2; 3 4]; B = [5 6; 7 8]; C = [9 10; 11 12]; D = blkdiag(A,B,C)
D=
1 2 0 0 0 0
3 4 0 0 0 0
0 0 5 6 0 0
0 0 7 8 0 0
0 0 0 0 9 10
0 0 0 0 11 12
示例2:构造方块矩阵
A = [1 2; 3 4]; B = [5 6]; C = [9; 11]; D = blkdiag(A,B,C)
结果为:
D =
解释
1 2 0 0
3 4 0 0
0 0 5 6
0 0 9 0
0 0 0 11
2.行列的删除
想要删除矩阵的某一行或者某一列,MATLAB中操作也很简单,将那一行或者那一列赋予一个“[]”
删除一行列:
b([行数],:) = [];
// b为矩阵名
b(:,[列数]) = [];
// b为矩阵名
删除多行列:
b(起始行数:终止行数,:) = [];
// b为矩阵名
b(:,起始列数:终止列数) = [];
// b为矩阵名