2011-05-24 208 views
0

在Matlab中我有一個大小爲10000 X 3的單元矩陣,我想刪除第一列中具有相同值的行。在matlab中刪除具有相同第一列值的行

也就是說,如果行i和行j在第一列中具有相同的值,我想要刪除這兩行。

我也應該說,在第一列中可以有多於兩行的值相同,在這種情況下,我想刪除所有這些行。

我該怎麼做?

謝謝!

回答

2

您可以使用函數histcunique和邏輯索引來實現你想要的。這是一個小例子。

a=randi(10,5,3)   %#generate a sample random matrix 

a = 

    5  3  5 
    5  7 10 
    7  7  4 
    8  2  6 
    8  2  3 

[uniqVals,uniqIndx]=unique(a(:,1)); %# get unique values and corresponding indices of the first column of a 
count=histc(a(:,1),uniqVals); %# get the bin counts of the elements (i.e., find which are repeated) 

b=a(uniqIndx(count==1),:) 

b = 

    7  7  4 

只有具有非重複元素的行被選中。既然你說過你有一個單元矩陣,那麼只需在執行此操作之前使用cell2mat將它轉換爲矩陣。

+0

謝謝但如果第一列不包含數字會怎麼樣?謝謝!!! – lal 2011-05-24 21:31:10

+0

他們都是字符串還是混合? – abcd 2011-05-24 22:11:23

相關問題