我希望在嵌套的 for-loops 中运行时从 Matalb 中的单元格数组中删除一些单元格,以便我想要永久删除单元格并在下一个迭代,它不会认为该单元感染它的下一个单元格,如何在 Matlab 中执行此操作,或者在这种情况下避免单元格数组的任何其他建议。我的单元格数组M
包含对象信息,P
是位置值。
我的代码:
for ii=1:1000
for jj=1:20
M{jj}=P{jj}(ii,:);
if (P{jj}(ii,:) ~= 0)
%here I want to delete M(jj) or M{jj} and also P(jj) or P{jj}
% My try M(jj) = []; M= M(~cellfun('isempty',M));
%but it gives error when the next iteration starts.
end
end
end
答案 0 :(得分:0)
我建议在这种特殊情况下使用while
代替for
-
ii=1;
jj=1;
jj_limit = 20;
while ii<=1000
while jj<=jj_limit
M{jj}=P{jj}(ii,:);
if (P{jj}(ii,:) ~= 0)
P(jj)=[];
M(jj)=[];
jj_limit = jj_limit-1;
continue;
end
jj = jj+1;
end
ii = ii+1;
end