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 回表示 (過去 30 日間)
for i=1:length(Data);
for j=1:3
if Data(i,j)<=0
Data(i,:)=[];
end
end
end
  1 件のコメント
Stephen23
Stephen23 2018 年 8 月 2 日
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

サインインしてコメントする。

採用された回答

Dennis
Dennis 2018 年 8 月 2 日
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,:)=[];

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by