How to calculate a sum?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Walter Roberson
el 14 de Mayo de 2011
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 comentarios
Walter Roberson
el 14 de Mayo de 2011
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
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!