MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Nilanjan Roy
on 29 May 2012

Hi I have a 100x100 matrix, A. I am doing the following:

q=0:0.1:50;sym k; for j=1:length(q)

B1(j)=sum(exp(q(j)*A(k,1)), k=1..100); end for j=1:length(q)

B2(j)=sum(exp(q(j)*A(k,2)), k=1..100); end .................................. .................................. for j=1:length(q)

B100(j)=sum(exp(q(j)*A(k,100)), k=1..100); end

The problem is perhaps with the command but I tried with both sum/symsum and some other variations. But always matlab gives one or the other error.

It would be very helpful if someone could suggest some "correct" command. Thanks a ton.

*No products are associated with this question.*

Answer by Geoff
on 29 May 2012

Accepted answer

I would expect this to work:

B = zeros(length(q), size(A,2)); for j = 1:length(q) B(j,:) = sum( exp(q(j)*A) ); end

Geoff
on 29 May 2012

Oh, sorry, I didn't pick up that this is the symbolic toolbox... I have no idea about that. I thought that looked like strange MatLab code. I'll leave my answer just in case it's any use.

Nilanjan Roy
on 29 May 2012

thanks a lot man. i think i was unnecessarily using the symsum command where all i needed was "sum". thanks again.

Geoff
on 29 May 2012

Cool. Hope it's clear what's happening... sum will work along a single dimension. By default this is 1. That means it will sum columns. If it's 2, it'll sum rows, and so on.. Whatever you call strips in higher dimensions =) So we can compute the sum for every column at once (giving a 1x100 vector) and then shove that into the matching columns of B for a single row indexed by j. It would probably be more efficient if you flipped the dimensions of B and wrote a whole column at a time, but I kept it consistent with your matrix A for clarity.

## 1 Comment

## Walter Roberson (view profile)

Direct link to this comment:http://fr.mathworks.com/matlabcentral/answers/39677#comment_82067

http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F