推Pop字节数组Matlab

时间:2014-05-05 16:49:36

标签: arrays matlab loops for-loop cell

我希望在嵌套的 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

1 个答案:

答案 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