查找并删除单元格数组中的行

时间:2014-01-15 09:06:58

标签: matlab

A = {'A1'; 'A2'; 'A3'}

我需要找到并删除包含'A2'(char)的行 结果:

A = 'A1'
    'A3'

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

A不是矩阵,它是一个单元格数组。

因此,您可以使用cellfun对单元格执行操作。在你的情况下,并在短期内:

A(cellfun(@(x) strcmp(x,'A2'), A)) = [];

我创建了一个无穷大的功能,可以将每个单元格的内容与字符串进行比较" A2&#34 ;;将它应用于整个单元阵列会给我一个要删除的单元格的掩码。

答案 1 :(得分:0)

我建议您使用ismember的第二个输出:

[~, ind] = ismember('A2',A)
A(ind) =[]

或使用strcmp一行:

A = A(~strcmp(A,'A2'))