2011-03-17 114 views
1

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

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

只有这样,我才能看到你会得到像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 

我要问,但是,为什么不是你的数据存储在数字载体,而不是字符串?

+0

嗨,谢谢你的回答!我有一个函数unique()的问题,所以我试图通过将num转换为str来处理这个问题......它的工作原理似乎没问题......但当然你是对的。我尝试着学习matlab,所以非常感谢你的帮助。 – user664664 2011-03-18 09:48:47