MATLAB:如何检查单元格数组中是否已存在单元格元素?

时间:2015-06-24 09:40:05

标签: matlab cell cell-array

stackoverflow的Hello社区,

我有一个单元阵列Q,5520x1单元阵列,由例如这样的数组组成:

K>> Q {1}

ans =

 0     3     1    84

等等。

我真的很想知道,怎么可能检查单元格数组的元素,如上所述,是否已经存在于Q中?因为如果它确实存在,我不会添加任何内容,但如果是,我必须将此元素添加到Q的末尾。如何才能正确完成此检查?如果可能的话,简短的解决方案当然会更受欢迎。

提前感谢您的时间, 尼克

1 个答案:

答案 0 :(得分:4)

我假设"元素"你的意思是整个矢量。例如,给定

Q = {[1 2 3], [4 5]}

应添加新的向量[2 4 3],但不应添加[4 5]

要进行检查:按new表示新向量,请使用

alreadyExists = any(cellfun(@(x) isequal(x, new), Q));

示例:

>> Q = {[1 2 3], [4 5]};
>> alreadyExists = any(cellfun(@(x) isequal(x, [2 4 3]), Q))
alreadyExists =
     0
>> alreadyExists = any(cellfun(@(x) isequal(x, [4 5]), Q))
alreadyExists =
     1