【问题标题】:MATLAB: how to delete elements of cell array A from cell array B?MATLAB:如何从元胞数组 B 中删除元胞数组 A 的元素?
【发布时间】:2010-12-11 19:01:16
【问题描述】:

我有两个字符串元胞数组AB,分别包含 60 和 400 个主题名称。单元格数组A 中的所有主题也在单元格数组B 中。我想做的是从单元格数组B 中删除单元格数组A 中列出的主题,以到达单元格数组C,它只包含我想要使用的主题。

【问题讨论】:

    标签: string matlab cell-array


    【解决方案1】:

    如果你不关心被排序的结果,你可以使用函数SETDIFF

    C = setdiff(B, A);
    

    如果您需要与原始元胞数组B 相同的顺序并删除了A 中的名称,则可以使用函数ISMEMBER

    C = B(~ismember(B, A));
    

    更新:在较新版本的 MATLAB 中,已向 SETDIFF 添加了一个附加参数来控制输出元素排序。要保持原来的顺序,您现在可以这样做:

    C = setdiff(B, A, 'stable');
    

    【讨论】:

    • 一如既往的好答案,我不知道 setdiff 函数。迈克——您显然喜欢它,您可以单击答案旁边的向上箭头,然后单击其下方的复选框。这是向回答者表示“感谢”的更正式的方式。
    猜你喜欢
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2013-08-09
    相关资源
    最近更新 更多