如何在matlab中找到两个类型为double的单元格数组的交集?

时间:2016-11-22 17:34:54

标签: matlab

我有两个5×5个细胞。单元格仅包含double个数值。

如何找到元素的交集?

输出应该是具有共同元素的单元格,例如[x,y]

1 个答案:

答案 0 :(得分:0)

考虑到您的单元格包含不同大小的数字矩阵,您希望在这些矩阵中找到公共元素(例如 C1C2),并获取结果作为单元格,您可以使用以下代码:

e = num2cell(intersect(arrayfun(@(x) C1{x}(:), (1:numel(A))'),...
                       arrayfun(@(x) C2{x}(:), (1:numel(A))')));

此代码适用于单元格中任何维度的矩阵。

如果要查找两个单元格中相同的矩阵,可能需要isequal函数。

如果单元格内的数字只有一个元素,则应该将它们存储为标准数值数组,如@ luis-mendo所述