SORU
22 NİSAN 2010, PERŞEMBE


Bir matris n en büyük elemanlar endeksleri olsun

Ben aşağıdaki matris olduğunu varsayalım:

01 02 03 06
03 05 07 02
13 10 11 12
32 01 08 03

Ve ilk 5 eleman (bu durumda, 32, 13, 12, 11, 10)herşeyi istiyorum. MATLAB bunu yapmak için en temiz yolu nedir?

CEVAP
22 NİSAN 2010, PERŞEMBE


Bu tekrarlanan değerleri ile başa çıkmak için isteğinize bağlı olarak yapabileceğiniz bir kaç yolu vardır. İşte 5 büyük değerleri yinelenen değerleri içerebilir olan) için endeksleri bulduğu bir çözüm

[sortedValues,sortIndex] = sort(A(:),'descend');  %# Sort the values in
                                                  %#   descending order
maxIndex = sortIndex(1:5);  %# Get a linear index into A of the 5 largest values

İşte 5 büyük bulduğu bir çözümbenzersizdeğerler, tüm unsurları bu değerlere eşit bulur:

sortedValues = unique(A(:));          %# Unique sorted values
maxValues = sortedValues(end-4:end);  %# Get the 5 largest values
maxIndex = ismember(A,maxValues);     %# Get a logical index of all values
                                      %#   equal to the 5 largest values

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • BigDawsTv

    BigDawsTv

    20 HAZİRAN 2012
  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005