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

amn*_*mno 4 matlab cell cell-array

你好 stackoverflow 社区,

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

K>> Q{1}

答案=

 0     3     1    84
Run Code Online (Sandbox Code Playgroud)

等等。

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

提前感谢您抽出时间,尼克

Lui*_*ndo 5

我假设“元素”指的是整个向量。例如,给定

Q = {[1 2 3], [4 5]}
Run Code Online (Sandbox Code Playgroud)

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

要执行此检查:用 表示新向量new,使用

alreadyExists = any(cellfun(@(x) isequal(x, new), Q));
Run Code Online (Sandbox Code Playgroud)

例子:

>> 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
Run Code Online (Sandbox Code Playgroud)