创建数据集数组(数据)后,我想删除Var4取特定值的所有行。这是我到目前为止所做的:
for i=1:length(data.perf)
if data.Var4(i)==2
data(i,:)=[]
end
end
问题当然是数组在条件成立的每次运行中变短,因此在检查所有行之前它会停止。当i=length(data.perf)
数组缩短约50行时。我想你们得到了问题。有人可以建议我一个优雅的解决方案吗?我将来必须经常这样做。
答案 0 :(得分:5)
您确定要循环到length(data.perf)
而不只是length(data)
吗?从背景来看并不清楚,但会更有意义......
第一个建议:反转你的循环可以解决数组变短的问题(for i = length(data.perf):-1:1
...)
更优雅的解决方案是在没有for循环的情况下完成
data(data.Var4==2, :) = [];