matlab中矩阵怎么让不同行乘以不同数,要用matlab的自带函数

如题所述

%假设有以下的矩阵A
A=[1 2 3;
   4 5 6;
   7 8 9];
%我们需要第一行乘以1,第二行乘以2,第三行乘以3
B=[1;
   2;
   3];
%B是一个列向量,存放没一行需要乘以的数
%先根据A的列数将B复制成和A大小一样的矩阵([1 1 1;2 2 2;3 3 3])
%然后再和A对应位置的元素相乘,就可以得到想要的结果C
C=A.*repmat(B,[1,size(A,2)]);

结果如下

A =

     1     2     3
     4     5     6
     7     8     9
     
B =

     1
     2
     3
     
C =

     1     2     3
     8    10    12
    21    24    27

还有一个更简单的办法

C=diag(B)*A;

温馨提示:答案为网友推荐,仅供参考
相似回答