如何进行存储在矩阵单元格中的未知大小的数组的交集?

时间:2012-05-06 15:57:13

标签: matlab cell

我有一个单元格矩阵,称之为M.矩阵维数为n ^ 3.

每个单元格都包含一个索引数组(对某些字符串进行regexp查询的结果,并不重要)。

我想在M的每个单元格中交叉数组中的索引。

我该怎么做?如果我使用交集函数,它如何知道从每个单元格中的数组内部获取索引?

据我所知,我必须使用单元格,因为内部数组的大小未知。

1 个答案:

答案 0 :(得分:2)

这是你想要做的吗?

A = M{1};
for i = 2:numel(M)
  A = intersect(A, M{i});
end

我不认为使用单个intersect电话,或者使用例如cellfun电话,这是一种巧妙的方法。 A = indices(1); for i = indices(2:end) A = intersect(A, M{i}); end

如果您只想要特定索引的交集,您可以这样做:

{{1}}