Multiply the vector organs

2 次查看(过去 30 天)
Eran Shvartzman
Eran Shvartzman 2017-12-27
How to multiply the vector parts without using a prod function
For example: s=[1 2 3 4], v=24

回答(2 个)

John D'Errico
John D'Errico 2017-12-27
编辑:John D'Errico 2017-12-27
You want to multiply s*v, so perform that multiplication, but without using the * operator? May I ask why you want to do such a silly thing, instead of just doing s*v?
As long as one of them is a scalar, then conv will suffice.
conv(s,v)
It will be slower, less efficient. It will serve absolutely no purpose.
(See the comments in case I was wrong in interpreting the ambiguous question.)
  5 个评论
Matt J
Matt J 2017-12-27
编辑:Matt J 2017-12-27
Note that this survives even if one of the elements of s is zero.
So, incidentally, does exp(sum(log(s))).
>> v=exp(sum(log([0,1,2,3])))
v =
0
Negative numbers work, too.

请先登录,再进行评论。


Matt J
Matt J 2017-12-27
编辑:Matt J 2017-12-27
for i=1:4
v=exp(sum(log(s)));
end
  1 个评论
John D'Errico
John D'Errico 2017-12-27
You may be right here. the request may be to write v=prod(s), without use of prod, instead of forming the product s*v.

请先登录,再进行评论。

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by