matlab如何循环判断,把循环结果作为判断条件

我想写一个迭代的循环判断语句,就一组数据例如是10*6,我每一行是一组数据,然后每一行我要算这一行的均值和标准差。再对该行的每一个元素做判断,准则就是3sigma,如果全部小于就计算到下一行。大于的话,删掉这一个数据,然后返回初始重新计算均值方差,在重新做判断。

for i=1:n-1
Kp=KpN(i,:);%取每行数据
ave=mean(Kp);%mean 求解该行数据平均值
u=std(Kp);%求解该行数据标准差
for t=1:m-1
if(abs(Kp(t)-ave)>3*u)%判断该行数据误差,大于删掉该数据
Kp(:,t)=[];%大于删掉该数据
else
Kp(:,t)=Kp(:,t);%小于则不变
end
end
end

写到这里就卡住了,因为上一次循环的结果要用作下一次的判断,如何改写命令。我删掉该元素后要重新计算该行的均值和标准差。
比如一行100个元素我第一次判断删掉了2个得到98个,98个在重新计算均值标准差,在判断在删除直到全部满足。

这样做就可以拉:

Data = cell(n,1);
for i = 1:n
   Kp = KpN(i,:); 
   flag = -1;
   while(flag)
       p = abs(Kp-mean(Kp))>3*std(Kp);
       flag = any(p);
       Kp = Kp(~p); 
   end
   Data{i} = Kp;
end
% Data就是你需要的呢

如有帮助还望采纳哦