How to fix error index exceeds matrix dimensions. I am very new to matlab and am trying to write a loop for this data set but I keep getting this error. Any help would be appreciated!

1 visualización (últimos 30 días)
for i=1:length(Data);
for j=1:3
if Data(i,j)<=0
Data(i,:)=[];
end
end
end
  1 comentario
Stephen23
Stephen23 el 2 de Ag. de 2018
This is MATLAB, so get rid of the ugly loop entirely and write simpler code:
>> Data = randi(9,6,3)-2
Data =
6 6 1
0 3 5
0 6 2
-1 4 -1
7 4 7
0 4 6
>> Data(any(Data<=0,2),:) = []
Data =
6 6 1
7 4 7

Iniciar sesión para comentar.

Respuesta aceptada

Dennis
Dennis el 2 de Ag. de 2018
You remove rows of Data, thus its size is shrinking during your loop. One way to resolve this is removing those rows after your loop:
idx=[];
for i=1:size(Data,1)
if any(Data(i,:)<=0)
idx=[idx,i];
end
end
Data(idx,:)=[];

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by