Index exceeds matrix dimensions.

i wrote codes: {for s = 1: 24 sigma{s,1} = var (X{s}); y{s,1} = sigma{s+1} - a*sigma{s}*a end} where a is nxn matrix. however, i got the Index exceeds matrix dimensions error. i know for s=24; y = sigma(25)-a*sigma(24)*a and sigma(25) doesn't exist.. so how to solve it? very appreciate ur kindness..

 Accepted Answer

Walter Roberson
Walter Roberson on 16 Jun 2011
Your code appears to be wrong even for other cases. For example, when s = 1, you set sigma{1} first, and then constructing y, you reference sigma{2} which you have not defined yet.
It is difficult for us to tell you how to solve the problem as it is not clear what you are trying to do.

3 Comments

owh.. i didn't realise that.. so i hv to put the command: { y{s,1} = sigma{s+1} - a*sigma{s}*a;} after the loop end.. then, i still get the same error. act, i'm trying to get the y values which is 3x3 matrix. is my explanation clear?
How do you want to define y{24,1} ? What result do you want for it?
You will need two loops (well, I might perhaps be able to write it with one, but two would be easier.)
You could also consider using cellfun. For example,
sigma = cellfun(@var, X);
would completely replace the looped calculation of sigma{s}
thank you some much.. u're right.. it's much more easier if we write it in two..

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!