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
你好 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