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

MATLAB:How to check if a cell element already exists in a cell array?

你好 Whosebug 社区,

我有一个元胞数组 Q,5520x1 元胞数组,它由如下数组组成,例如:

K>> Q{1}

答案=

 0     3     1    84

等等。

我真的很想知道,如何检查元胞数组的元素(如上所示)是否已存在于 Q 中?因为如果它确实存在,我不添加任何东西,但如果是,我必须将这个元素添加到 Q 的末尾。如何正确完成此检查?如果可能的话,简短的解决方案当然会更受欢迎。

提前感谢您的宝贵时间, 尼克

我假设 "element" 你指的是整个向量。例如,给定

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