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

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by krishnamurthy on 5 Jul 2012

How to overcome the error message in the script below;

m=4; PT_mj=[0 0.01 0.02 0.03 0 0 0.045 0.05 0 0 0 0.06]; PT_jm=PT_mj' ; flr_jm=zeros(4,3); for i=2:m for j=1:(m-1) if j~=i if i~=(m-2) | j~=(m-1) deltalambda_2(i)=PT_mj(i,j)-(1-flr_jm(i,j))*PT_jm(i,j) end end end end

*No products are associated with this question.*

Answer by Mark Whirdy on 5 Jul 2012

Hi there problem is with

i=2:m

m here is 4, but the size of PT_mj is [3,4] so the matrix access below won't work

PT_mj(i,j)

What are you trying to do generally? (if its not recursive we can do it without loops probably) Mark

Answer by Mark Whirdy on 7 Jul 2012

Hi Jan

The error I get is

??? Index exceeds matrix dimensions.

Since PT_mj is a [3*4] matrix and we are trying to access PT_mj(i,j) where i =4, I get this error. I take it you're getting a different error then?

Changing

deltalambda_2(i)=PT_mj(i,j)-(1-flr_jm(i,j))*PT_jm(i,j)

to

deltalambda_2(i)=PT_jm(i,j)-(1-flr_jm(i,j))*PT_jm(i,j)

prevents the error, but since I can't get my head around the intended behaviour of the code I doubt if this is really a fix. Especially since with this "fix, " deltalambda_2 is now all zeroes, and that line could be further resolved to

deltalambda_2(i)=flr_jm(i,j)*PT_jm(i,j)

which is a kind of unlikely trivial simplification unless the algorithm is totally misspecified. Without understanding more fully the context, I can't make any progress myself. Maybe you'll have more luck.

## 1 Comment

Direct link to this comment:http://nl.mathworks.com/matlabcentral/answers/42781#comment_87886

Please post the complete error message and mention, which line causes the error. I currently do not see a problem, which could cause the (partially) posted message. Please

editthe original message and donotprovide the additional information as comment or answer.Please choose a short title, and include all information required to understand the problem, in the body of the question. Thanks.