假设我有一个矩阵:
A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];
有没有一种方法可以按以下方式进行乘法:
第1行乘以1
第2行乘以2
第3行乘以3
以此类推?
我可以使用for循环来完成这个任务,但是在作业中他们要求我们使用矩阵。
在实际作业中,A
填充了随机数,但每一行都要连续相乘。
谢谢,非常感谢任何帮助。
假设我有一个矩阵:
A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];
有没有一种方法可以按以下方式进行乘法:
第1行乘以1
第2行乘以2
第3行乘以3
以此类推?
我可以使用for循环来完成这个任务,但是在作业中他们要求我们使用矩阵。
在实际作业中,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;
.
就是我寻找了几个小时的东西! - JFS
bsxfun
函数 - 它正好可以做你想要的事情。 - MrAzzaman