Unique, sort gibi fonksiyonlar aslında programlamada derin ve çok temel konular. Unique gibi fonksiyonlar hız ve bellek kullanımı için optimize edilirler. Bu fonksiyonların algoritmaları ve alternatifleri için programlama ve matematik literatürüne bakılabilir.
Ek olarak, benim aklıma gelen ilk yöntem şu, 1 x n veya n x 1 boyutundaki bir arrayın unique elemanlarını şöyle bulabiliriz:
function [array] = ozgun(array) %En sondan 2. siraya tum elemanlari sececek for g=numel(array):-1:2 %Secili elemanin degeri, 1. siradan o elemanin sirasina gelene %kadar en az bir yerde daha var mi if any(array(1:(g-1))==array(g)) array(g)=[]; %varsa sil end end end
Merak ettiğim için, 25000 elemanlı bir array oluşutup Matlab'in unique ve benim ozgun fonksiyonlarımın hızını karşılaştırdım. 3er kez çalıştırdıktan sonra Matlab'inkinin 0.0025 ortalama saniye, benimkinin ortalama 1.6487 saniyede işlemi tamamladığını gördüm.
Arkadaşlar merhaba, kolay gelsin . Başlıkta da belirttiğim gibi unique kullanmadan tekrarlı elemanı nasıl bir defa yazdırabilirim ?
Şimdiden teşekkürler.
Merhaba,
Neden unique'den kaçınıyoruz, pratik yapmak için mi soru?
İyi günler,
Unique'den kaçınmamızın bir özel sebebi yok. Mesela program yazarken unique veya hazır kod kullanacağımız aklımıza gelmedi. Onun yerine ne yapabilirim ? Diye sormuştum.