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!