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 visualizzazione (ultimi 30 giorni)
for i=1:length(Data);
for j=1:3
if Data(i,j)<=0
Data(i,:)=[];
end
end
end
  1 Commento
Stephen23
Stephen23 il 2 Ago 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

Accedi per commentare.

Risposta accettata

Dennis
Dennis il 2 Ago 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,:)=[];

Più risposte (0)

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by