what is the problem?

i have a loop that every time insert a vector in one row of a matrix but when i assign it i give this error massage :Index exceeds matrix dimensions. this is my code for assigning :
ps{psize,pcol}=cl{1,pcol};
that psize is 500 and pcol is 15

1 Comment

Please give the entire error message, that means ALL the red text, not just some of it. I want to know if it's failing at the very last, lower right element of each, in other words
ps{500,15} = cl{1,15};
or if you're trying to assign some other elements, like cl{2,42} or something. The error message should say how many elements there are in the arrays.

Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 30 Dec 2013

0 votes

Check the sizes of ps and cl, and check if they are not less than pcol and psize

2 Comments

fatemeh
fatemeh on 30 Dec 2013
ps=cell(500,15); cl=cell(1,15); what is the problem?
At the MATLAB command line, give the command
dbstop if error
and run the program. When it stops, examine
size(cl)
pcol
I suspect you will see cl being smaller than you expect.
Question: why not use
ps(psize, pcol) = cl(1, pcol);
That would be less internal work. This will not make a difference to the array index error you are getting, but it is generally safer.

This question is closed.

Asked:

on 30 Dec 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!