2011-03-17 111 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