SORU
21 Mayıs 2010, Cuma


Nasıl bir matris içinde belirli bir değeri öğe sayısını sayabilir miyim?

Herkes sayısını saymak için nasıl bir değeri bir matris içinde görünüyor mu?

Örneğin, ben bir 1500 x 1 matris M (vektör) mağazalar değerleri hafta içi (1 - 7), nasıl saydım kaç pazar (1), Pazartesi(2), ... , Cumartesi(7) saklanır M?

CEVAP
21 Mayıs 2010, Cuma


İşte benzersiz öğeleri saymak için aklıma gelen tüm yolları listesi:

M = randi([1 7], [1500 1]);

Seçenek 1: getirebilir

t = tabulate(M);
counts1 = t(t(:,2)~=0, 2);

Seçenek 2: geçmişi/histc

counts2_1 = hist( M, numel(unique(M)) );
counts2_2 = histc( M, unique(M) );

Seçenek 3: accumarray

counts3 = accumarray(M, ones(size(M)), [], @sum);
%# or simply: accumarray(M, 1);

Seçenek 4: sıralama/diff

[MM idx] = unique( sort(M) );
counts4 = diff([0;idx]);

Seçenek 5: arrayfun

counts5 = arrayfun( @(x)sum(M==x), unique(M) );

Seçenek 6: bsxfun

counts6 = sum( bsxfun(@eq, M, unique(M)') )';

Seçenek 7: seyrek

counts7 = full(sparse(M,1,1));

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BeginnersTech

    BeginnersTec

    8 NİSAN 2011
  • mipd1980

    mipd1980

    25 EKİM 2006
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012