两矩阵相乘(点乘和乘的区别)
运算规则
代码示例
% 定义 s_hat 矩阵
s_hat = [0.0868650848259544;
0.189995743304577;
0.177074789740200];
% 定义 V_PD_pinv 矩阵
V_PD_pinv = [2.77555756156289e-16, 4.58257569495584, -4.47213595499958;
-1.14564392373896, -1.14564392373896, 2.23606797749979;
0.572821961869480, 0.572821961869480, -2.22044604925031e-16];
% 假设 p_max 的值
p_max = 1;
% 计算归一化方向向量 r_N_hat
r_N_hat_dot = (1/p_max) * V_PD_pinv .* s_hat;
r_N_hat = (1/p_max) * V_PD_pinv * s_hat;
% 显示结果
disp("点乘的结果:");
disp(r_N_hat_dot);
disp("乘的结果:");
disp(r_N_hat);
当一个3*3的矩阵与3*1的矩阵相乘和点乘时,其输出值分别如下
矩阵A和B不同型,不能点乘,但是新版本修改了,做了隐藏扩展,不足的两列都扩展成了第一列的数值,导致我一时没有意识到错误,并且也要区别dot函数和".*",他们不是一个东西,dot是求内积(我一直有误解,导致写代码的时候一直绕来绕去,效率很低)
这次结果错误困扰了我两天,终于解决了,没想到是由于一个小小的“.”!