element-wise operator to scale rows of matrix with entries of a vector
12 次查看(过去 30 天)
显示 更早的评论
Given a matrix and a vector
A = [2 3 4 5;5 4 3 2;1 2 3 4;4 3 2 1];
d = [1 2 3 4];
I want to scale the rows of A with the corresponding entries of d to obtain
res = [2 3 4 5;10 8 6 4;3 6 9 12;16 12 8 4];
I figured out that
res=A.*d(:); --> correct
res2=A.*d; --> wrong, results in column-wise scaling
I know that .* indicates element-wise operations and d(:) re-shapes d into a column-vector, but my question is how to systematically read the expression A.*d(:) . Also, applies the element-wise operator .* to its left argument (here, A) or to its right argument (here, d)?
0 个评论
采纳的回答
Matt J
2023-1-17
编辑:Matt J
2023-1-17
Also, applies the element-wise operator .* to its left argument (here, A) or to its right argument (here, d)?
.* has two operands A and d, so it applies to both of them. It is also commutative (as you would expect), so you could have also done,
res=d(:).*A
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Exponents and Logarithms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!