Multiplying each value of a vector with the corresponding value in another vector?

20 次查看(过去 30 天)
I have 4 vectors E,A,alpha,temp (each 21x1)
I want to carry out the following equation:
theta = E*A*alpha*temp [-1 ;1]
and theta be a vector where the first value is: theta(1) = E(1)*A(1)*alpha(1)*temp(1) * [-1;1]
and theta(n) = E(n)*A(n)*alpha(n)*temp(n) * [-1;1] etc.
Do I use for loop, how would I got about this?
Thank you in advance.

采纳的回答

Star Strider
Star Strider 2020-11-13
Use element-wise multiplication. If all the other vectors are column vectors, the [-1 1] vector must be a row vector:
theta = E.*A.*alpha.*temp*[-1 1]
See Array vs. Matrix Operations for an explanation.

更多回答(2 个)

Matt J
Matt J 2020-11-13
theta = (E.*A.*alpha.*temp.*[-1 ,1]).'

Setsuna Yuuki.
Setsuna Yuuki. 2020-11-13
编辑:Setsuna Yuuki. 2020-11-13
with loop for
for n = 1:length(E)
theta(:,n) = E(n)*A(n)*alpha(n)*temp(n) * [-1;1]
end
or can be:
theta(n) = E.*A.*alpha.*temp(n).*[-1;1]
  2 个评论
Finn Farnan
Finn Farnan 2020-11-13
Thank you for your response.
I have tried this solution and get "Unable to perform assignment because the left and right sides have a different number of elements."
Any ideas?
Setsuna Yuuki.
Setsuna Yuuki. 2020-11-13
编辑:Setsuna Yuuki. 2020-11-13
My error in the code:
theta(n) = E.*A.*alpha.*temp(n).*[-1;1]
%is
theta= E.*A.*alpha.*temp.*[-1;1]
loop:
theta(:,n) = ...

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Optimization Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by