필터 지우기
필터 지우기

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

조회 수: 35 (최근 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에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by