MATLAB中单元格数组的交集

时间:2011-03-17 22:52:13

标签: arrays matlab cell intersection

我需要确定阵列单元格中所有单元格的交集。我使用这样的命令:

temp(j-1)={6 7 8 9 10};
temp(j)= {8 9 10};

inter =  cellfun(@intersect,temp(j-1),temp(j),'UniformOutput', false)  ;  

在输出中我得到:

inter={0189}

我应该怎样做才能获得{8 9 10}?

我必须使用inter作为另一个矩阵中的索引向量。

1 个答案:

答案 0 :(得分:1)

我能看到你会得到类似inter={0189}之类的东西的唯一方法是,实际上,你实际上是因为你的单元格包含字符串而得到inter=' 0189'。如果是这样,你可以改为做这样的交集:

>> temp = {'6 7 8 9 10' '8 9 10'}

temp = 

    '6 7 8 9 10'    '8 9 10'

>> inter = intersect(str2num(temp{1}), str2num(temp{2}))

inter =

     8     9    10

我不得不问,为什么不将数据存储在数字向量而不是字符串中?