MATLAB Answers

How to overcome the error message in the script below -Matrix dimension error - due to different size array manipulation

3 views (last 30 days)
krishnamurthy
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

  1 Comment

Jan
Jan on 5 Jul 2012
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 edit the original message and do not provide 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.

Sign in to comment.

Answers (2)

Mark Whirdy
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

  1 Comment

Jan
Jan on 5 Jul 2012
I do not understand, why "i=2:m" should cause troubles here. Could you elaborate this? The error message does not belong to an out-of-range indexing.

Sign in to comment.


Mark Whirdy
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.

  0 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!