Arrays 将第i行中的矩阵元素乘以第一行中的第i元素
我有以下矩阵:Arrays 将第i行中的矩阵元素乘以第一行中的第i元素,arrays,matlab,matrix,Arrays,Matlab,Matrix,我有以下矩阵: s=[1,2,3; 4,5,6;7,8,9]; 1| 2| 3 4| 5| 6 7| 8| 9 现在我想让第一行和第I列中的每个整数乘以相应的I行号。 期望输出: 1 | 2 | 3 8 | 10 | 12 21| 24 | 27 请注意,如果A是对角矩阵,则A*x根据A中对角线指定的权重缩放x行。因此,对于您的问题,您可以简单地使用: s = [1,2,3; 4,5,6;7,8,9]; % 1 2 3 % 4 5
s=[1,2,3; 4,5,6;7,8,9];
1| 2| 3
4| 5| 6
7| 8| 9
现在我想让第一行和第I列中的每个整数乘以相应的I
行号。
期望输出:
1 | 2 | 3
8 | 10 | 12
21| 24 | 27
请注意,如果A是对角矩阵,则A*x根据A中对角线指定的权重缩放x行。因此,对于您的问题,您可以简单地使用:
s = [1,2,3; 4,5,6;7,8,9];
% 1 2 3
% 4 5 6
% 7 8 9
s = diag([1:size(s,1)]) * s;
% 1 2 3
% 8 10 12
% 21 24 27
使用
bsxfun
可以编写:
bsxfun(@times,s,(1:size(s,1)).')
在MATLAB R2016b或倍频程中,由于隐式展开,可以写成:
s .* (1:size(s,1)).'
很好的单线解决方案,很好。我已经用过了。我想知道是否有任何问题无法用
bsxfun
:)回答
s .* (1:size(s,1)).'