0
在Matlab中我有一個大小爲10000 X 3的單元矩陣,我想刪除第一列中具有相同值的行。在matlab中刪除具有相同第一列值的行
也就是說,如果行i和行j在第一列中具有相同的值,我想要刪除這兩行。
我也應該說,在第一列中可以有多於兩行的值相同,在這種情況下,我想刪除所有這些行。
我該怎麼做?
謝謝!
在Matlab中我有一個大小爲10000 X 3的單元矩陣,我想刪除第一列中具有相同值的行。在matlab中刪除具有相同第一列值的行
也就是說,如果行i和行j在第一列中具有相同的值,我想要刪除這兩行。
我也應該說,在第一列中可以有多於兩行的值相同,在這種情況下,我想刪除所有這些行。
我該怎麼做?
謝謝!
您可以使用函數histc
,unique
和邏輯索引來實現你想要的。這是一個小例子。
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
將它轉換爲矩陣。
謝謝但如果第一列不包含數字會怎麼樣?謝謝!!! – lal 2011-05-24 21:31:10
他們都是字符串還是混合? – abcd 2011-05-24 22:11:23