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

 Réponse acceptée

Walter Roberson
Walter Roberson le 16 Juin 2011

0 votes

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 commentaires

srycandy
srycandy le 16 Juin 2011
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?
Walter Roberson
Walter Roberson le 16 Juin 2011
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}
srycandy
srycandy le 19 Juin 2011
thank you some much.. u're right.. it's much more easier if we write it in two..

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by