Как исправить «Индекс в позиции 1 превышает границы массива» - PullRequest
0 голосов
/ 06 июля 2019
 x = gallery('uniformdata',[1,10],0);
 y = gallery('uniformdata',[1,10],1);
 [v,c] = voronoin([x(:) y(:)]); %returns an array V with vertices and a cell array C with a matrix for each cell of the diagram. 
 v = v( ~any( isnan( v ) | isinf( v ), 2 ),: );
 for ii=1:numel(c)
        v(c{ii},:) %contains the vertices to cell number ii, corresponding to centroid x,y(ii,:).     
 end

Кажется, что v(c{1},:) работает нормально, но как только оно достигает v(c{2},:), я получаю эту ошибку

"Индекс в позиции 1 превышает границы массива (не должен превышать 13)."

ПРИМЕЧАНИЕ: numel(v) возвращает 13

Я пытался for ii=1:numel(c)-1, но, похоже, это тоже не работает

1 Ответ

1 голос
/ 06 июля 2019

Строка v = v(...) меняет массив v. Индексы в c больше не соответствуют массиву v.

Вы должны оставить эту строку кода.

...