How to calculate a sum?
1 回表示 (過去 30 日間)
古いコメントを表示
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!
0 件のコメント
回答 (1 件)
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
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
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!