MATLAB: Sum of matrix with variable dimension

matrixsumvector

Hello, I have two matrices produced by meshgrid and a simple scalar:
r = 1:10;
N = 1:10;
[r,N] = meshgrid(r,N);
N0 = 4;
I want, for each value of N, to get the sum from N0 to N of r^n. However this Matlab commands is not working :
sum(r.^(N0:N));
For example for r(5,5) = 5 and N(5,5) = 5, the result would be 5^4 + 5^5 = 3750. What I want is to get the matrix resultant of this operation over each row and column of r and N.
Thank you for your help!

Best Answer

I'm not sure what should happen when N(y,x) < N0, should the result be 0?
If I understand correctly, this will do:
arrayfun(@(rr, nn) sum(rr .^(N0:nn)), r, N)
Note that the above works for N(y, x) < N0 because the sum of an empty vector is 0 instead of empty.