Soru sorBir vektörün alt küme kombinasyonlarını bulma
tuba tarafından 7 yıl önce soruldu

Matlabda 1 den başlayıp 27 e kadar olan sayıların kombinasyonunu nasıl yapabilirim. Benm için çok önemli, rastgele seçim yapmak istiyorum mesala 6 lı kombinasyon 2 li kombınasyon gibi ve 300 milyon kombınasyona ıhtıyacım var. Acil dönüş yaparsanız cok sevınırım

7 Cevap
sayginer Yönetici tarafından 7 yıl önce cevaplandı

nchoosek fonksiyonu ile bunu yapabilirsiniz. Mesela 1'den 10'a kadar olan sayılardan 2'li kombinasyonları yazabilmek için aşağıdaki örneği incleyebilirsiniz.

a = uint16(1:10);
c = nchoosek(a,uint16(2))
tuba tarafından 7 yıl önce cevaplandı

tekrar merhaba oluşturdugumuz kombinasyonda toplam kaç kombinasyon oluşmus ve bunları gösteren kod nasıldır. Ben atadıgım degişkene size() ve imshow() yazarak yapmaya alıştım ama istedigim sonucu alamadım

sayginer Yönetici tarafından 7 yıl önce cevaplandı

Merhaba,
for döngüsü ile bütün kombinasyonarı yazdırabilirsiniz:
Örneğin 1'den 10 kadar olan bir matrisin bütün kombinasyonları oluşturabilmek için aşağıdaki kodu inceleyebilirsiniz:

for i=1:10 
 a = uint16(1:10); 
 c = nchoosek(a,uint16(i)) 
 end
  
tuba tarafından 7 yıl önce cevaplandı

tesekkür ederim ama bunu yapıyorum bana tüm kombinasyonları göstermiyor sayı 27405 bana gösterdigi kombinasyon 5034 nedeni nedir ben kombinasyonların tamamının ne oldugunu görmek istiyorum tesekkür ederim ilgilendiginiz için.

sayginer Yönetici tarafından 7 yıl önce cevaplandı
  1. Ben yukarıdaki örnekte 1-10 arası sayılar için bir örnek verdim. Siz bunu 27 yaptınız mı?
  2. 27405 bu ne sayısı? Nere yazıyor bu sayı?
  3. 5034 bu ne sayısı? Nere yazıyor bu sayı?
  4. 300 milyon kombinasyonun hepsini mi bastırmak istiyorsunuz? (Bunun çok uzun sürebileceğini ve bilgisayar hafızanızın yetmeyebileceğini hatırlatmak isterim.)
tuba tarafından 7 yıl önce cevaplandı

Tekrar merhaba, 27405 bu 27 nin 4 lü kombinasyonu bana command windows penceresınde sadece 5034 adet kombinasyon gösteriyor ben hepsini görmek istiyorum. 

sayginer Yönetici tarafından 7 yıl önce cevaplandı

1'den 27'ye kadar olan sayıların 4'lü kombinasyonları C(27,4)=17550 tane değerden oluşur. Sağlamasını buradaki bağlantıda yapabilirsiniz. Bu işlemi MATLAB ile yapmak için ise aşağıdaki koda bakabilirsiniz. Size 17550×4 boyutunda bir matris verecektir.

a = uint16(1:27); 
c = nchoosek(a,uint16(4))