矩阵M是一个 mxn 的矩阵,现在要给M矩阵的第一列都要乘上10,使其第一列扩大10倍,那肿么做呢?
我第一时间用的是:
M(:,1) = M(:,1)*10; //错误的
但是这个错了,结果是不对的
这里要用点乘才行,所以正确的写法是:
M(:,1) = M(:,1).*10; // 正确写法
这里要明白矩阵乘积与矩阵点乘(对应位相乘)的区别
矩阵乘法要求左矩阵的行数与右矩阵的列数相等,即MxN维矩阵乘以NxM维矩阵
例:A=[1 1 1;2 2 2] B=[3 3;4 4;5 5]
MATLAB语句:A*B
>> c = A*B
c =
12 12
24 24
矩阵点乘要求两矩阵维数相等,即MxN维矩阵乘以MxN维矩阵【矩阵点乘积就是 对应位相乘】
例:A=[1 1 1;2 2 2] B=[3 3 3;4 4 4]
MATLAB语句:A.*B
>> d = A.*B
d =
3 3 3
8 8 8
请发表评论