首页 文章

Matlab将矩阵中的每一行乘以不同的数字

提问于
浏览
5

假设我有一个矩阵:

A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];

有没有办法繁殖:
第1行第1行
第2排2
第3行第3行
等等?

我能够使用for循环执行此操作,但是如果对于他们希望我们使用矩阵的分配,它 . 在实际的分配中, A 用随机数填充但每行连续相乘 .

谢谢,非常感谢任何帮助

2 回答

  • 6

    你只需将对角矩阵乘以A就好了 .

    A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];
    disp(diag([1 2 3 4]) * A);
    
     1     2     3
     8    10    12
    21    24    27
    40    44    48
    
  • 5

    您可以使用 bsxfun 轻松快速地完成此操作

    out = bsxfun(@times, [1 2 3 4].', A)
    

    在较新版本的MATLAB(R2016b和更新版本)中,您实际上可以用 * 替换 bsxfun

    out = [1 2 3 4].' * A;
    

相关问题