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
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
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,:)=[];
2 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!