繁体   English   中英

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

[英]Matlab multiply each row in matrix by different number

假设我有一个矩阵:

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

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

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

谢谢,非常感谢任何帮助

你只需将对角矩阵乘以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

您可以使用bsxfun轻松快速地完成此任务

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM