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