例:创建一个二维数组,其中第一行为(1,5,10,15,20),第二行为第一行的2倍,第三行为第一行的3倍。
方法一:直接计算
row1=[1,5,10,15,20];
A=[row1;2*row1;3*row1];
方法二:利用矩阵乘法(更通用)
row1=[1,5,10,15,20];
mutipliers=[1;2;3]%列向量
A=mutipliers*row1;
方法三:使用repmat(更复杂的情况)
row1=[1,5,10,15,20];
A=repmat(row,3,1).*[1;2;3];
repmat函数讲解:
全称“repmat matrix”(重复矩阵),作用是将一个数组(矩阵)在行方向和列方向上进行重复复制,生成更大的矩阵。
基本语法:
B=repmat(A,m,n)
- A:要重复的原始矩阵
- m:在行方向上重复的次数,1表示不重复
- n:在列方向上重复的次数
示例:
A=[1 2;3 4];
B=repmat(A,2,3)
输出:
B =
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
三维数组重复:
A=[1 2;3 4];
B=repmat(A,1,2,3)%1:行方向,2:列方向,3:页方向
输出:
B(:,:,1) =
1 2 1 2
3 4 3 4
B(:,:,2) =
1 2 1 2
3 4 3 4
B(:,:,3) =
1 2 1 2
3 4 3 4
矩阵运算:
1.矩阵乘法(*)
矩阵A是m×n矩阵,B必须是n×p矩阵,才能计算A*B
2.点乘(.*)
也叫逐元素乘,两个矩阵的对应元素相乘,A与B的维度必须完全相同
3.其他相关运算
| 运算 | 运算符 | 说明 |
| 矩阵幂 | ^或mpower | A^3=A*A*A |
| 逐元素幂 | .^ | A.^3=[ |
| 矩阵除法 | /或mldivide | x=A/b |
| 逐元素除法 | ./ | A./B=[a11/b11,a12/b12;...] |


被折叠的 条评论
为什么被折叠?



