2017-02-14 128 views
1

我有一個形式單元格:A = {[7]; []; [7,7]; [3,4,5]; [6,7]; [ 7,7-]; [7,8]; []};MATLAB中一個單元中的相似和不相似元素

我想在Matlab中分別找到一些相似和不相似的元素我怎麼能做到這一點?

我的意思是,那個元素[3,4,5]1和要確定的元素的類型。

+3

你能準確定義你的意思嗎? – avivr

回答

0

您可以將數字轉換爲字符串,然後使用unique及其所有符合您的用途的屬性。

如果你問有關唯一和非唯一細胞的數量,然後再去做這樣的:

B= cellfun(@num2str, A, 'UniformOutput', false); 
number_of_unique_cells=numel(unique(B)); 
number_of_repeated_cells=numel(A)-numel(unique(B)); 
0

你可以通過單元陣列循環:

A = {7;[];[7,7];[3,4,5];[6,7];[7,7];[7,8];[]}; 
elem = zeros(numel(A),2); 
for k = 1:numel(A) 
    elem(k,1) = numel(unique(A{k})); 
    elem(k,2) = numel(A{k})-elem(k,1); 
end 

這裏的結果是2列向量elem,其中第一個向量是no。獨特的元素和第二個是沒有。非單一元素:

elem = 
    1  0 
    0  0 
    1  1 
    3  0 
    2  0 
    1  1 
    2  0 
    0  0 
+0

@abbas如果這個答案幫助你,請按照網站的指導方針和[upvote/accept](https://stackoverflow.com/help/someone-answers)這個答案 – EBH