Bu Blogda Ara

13.12.2013

nCopies Array List,zeros,ones- Java

Java da n tane aynı bilgiyi içeren bir liste yapmak istersek, (Matlab daki zeros, ones örneklerinin gelişmişi) şu kodu kullanabiliriz.


zeros(1,00):

ArrayList list= new ArrayList(Collections.nCopies(100, 0)); 

ones(1,100):

ArrayList list= new ArrayList(Collections.nCopies(100, 1)); 

100 elemanlı bir String dizisi:
 
ArrayList list= new ArrayList(Collections.nCopies(100, "0/0")); 

9.12.2013

To save this variable, use the -v7.3 - Matlab

"Warning: Variable 'go_selected_label_info' cannot be saved to a MAT-file whose version is older than 7.3.
To save this variable, use the -v7.3 switch.
Skipping..."

Kaydedilecek verinin boyutu 2GB'dan fazla ise böyle bir uyarı geliyor.

Çözüm:

File>Preferences> General > MAT-Files > MATLAB Version 7.3 or later seçilir.


5.12.2013

ranking in matlab

Amacım bir dizi elamanı sıralamaktan ziyade herkese bir sıra numarası vermek. Aynı değere sahip kişilere de aynı sıra numarası vermek.

>> A=[4 7 9 1 3 7]

A =

     4     7     9     1     3     7

>> [~,~,rankA]=unique(A)

rankA =

     3     4     5     1     2     4

Burada 7 değerine sahip 2. ve 6. elemanın sıra numarasının 4 olduğunu görüyoruz. Ve maksimum sıra numarası elaman sayısına eşit değil. Çünkü aynı sıraya sahip elemanlar var.

büyükten küçüğe sıralama için ise şunu da eklemek gerekecek:

>> revRankA = max(rankA) - rankA  + 1

revRankA =

     3     2     1     5     4     2



Sıralama işlemi ile karıştırmayalım. O şöyle bir şey dönerdi.

>> [sortA indA]=sort(A)

sortA =

     1     3     4     7     7     9

indA =

     4     5     1     2     6     3

ve indAyı tekrar sort etsem, aynı değere sahip 2. ve 6. elemanlar da kendi içinde sort edilecek, biri 4. sırada diğeri 5.sırada yer alacaktı.
>> [sortsortA indindA]=sort(indA)

sortsortA =

     1     2     3     4     5     6

indindA =

     3     4     6     1     2     5

kaynak: http://stackoverflow.com/questions/14448759/sort-in-matlab-and-assign-ranking