필터 지우기
필터 지우기

How to calculate a sum?

조회 수: 1 (최근 30일)
P
P 2011년 5월 14일
I have a sum S (the greek symbol) from p=0 to M-1, g=(Is/VT)*exp(x/VT); and I want: ans=1/M * sum(g*exp(-j*(2*pi/M)*p)). x is a 21x1 vector and i need an answer 21x21.
Please help!

답변 (1개)

Walter Roberson
Walter Roberson 2011년 5월 14일
g=(Is/VT)*exp(x/VT);
1/M * sum(g * exp(-j*(2*pi/M).*(0:M-1)))
However, if x is a vector, you need to clarify what shape it is (row or column) and need to clarify whether you want matrix multiplication for the "g*exp" part or what you want to do if x is a vector.
  댓글 수: 6
Walter Roberson
Walter Roberson 2011년 5월 14일
If your x is 21x1 then what I proposed will produce a 21x1 output, not a 1 x 21. For example, size(sum((1:21).' * (0:4),2)) yields 21 1
Are you expecting a 21x21 matrix of different values, or are you wanting to copy the 21x1 matrix out to 21x21 ? If you want to copy it out to 21x21 then
repmat(1/M * sum(g * exp(-j*(2*pi/M).*(0:M-1)),2),1,21)
if you want all the rows to be the same, or
repmat((1/M * sum(g * exp(-j*(2*pi/M).*(0:M-1)),2)).',21,1)
if you want all the columns to be the same
P
P 2011년 5월 14일
I was expecting 21x 21 different values because M=21 points(-10...0...10) . I was expecting something like that:
a(0) a(-1) a(-2)....
a(1) a(0) a(-1)....
a(2) a(1) a(0).....

댓글을 달려면 로그인하십시오.

카테고리

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