Merhaba, [1 1 1 2 2 2 3 3 3] şeklinde bir dizi bulunmakta her biri elemanıma 1'den 9'a kadar numara verdiğimi varsaydığım taktirde, yazacağım kodun rastgele 3'lü diziler oluşturmasını istiyorum ve bu diziler 1 2 3 şeklinde sıralansın ama varsayalım ilk dizide 3 numaralı 1 elemanı kullanıldığında bu elemanımı döngüden çıkarsın ve tekrar kullanmasın istiyorum.Bu şekilde bir küçük çaplı proje için incelememi önereceğiniz örnekler mevcut mudur? Şimdiden teşekkür ederim.
ilk dizide 3 numaralı 1 elemanı kullanıldığında bu elemanımı döngüden çıkarsın ve tekrar kullanmasın istiyorum
Burada istediğiniz bir daha hiç mi 3 kullanmasın?
burda söylemek istediğim 3 tane 1 elamanım var birinci 1 ikinci 1 üçüncü 1. İlk random dizimde üçüncü 1 kullanıldığında tekrar onu hiç bir dizede kullanmasın sonrasında 2'lerden birini seçsin sonra 3'lerden birini seçsin ve 3 elemanlı bir dizi oluştursun ama burda kullanılan üçüncü 1 , ikinci 2, üçünkü 3 tekrar kullanılmasın diğer random dizilerde
Yani burada yapmaya calistiginiz bir kumenin 3'lu kombinasyonlarini bulmak?
Soyle bir yol izlenebilir:
- Elemanlarinizin bulundugu bir A dizimiz olsun.
- A dizisinin eleman sayisi kadar da B=1:length(A) seklinde bir matrisimiz olsun.
- Randi ile 1 ile olusturdugumuz B matrisinin eleman sayisi arasinda 3 tane rastgele sayi uretelim.
- Urettigimiz her sayinin B'de karsilik gelen elementini alalim. Aldigimiz bu elemente karsilik gelen elementi da A'dan cekelim, (Yani aslinda B matrisi Anin element numaralarini temsil ediyor olacak)
- Sonra sectiklerimizi B'de NaN atayalim.
Biraz hizli yazdim, anlasilmayan yer varsa sorabilrisiniz.
söylediğiniz cümle tamamen doğru bir kümenin 3 li kombinasyonları fakat bu kombinasyonlar 1 2 3 sıralamasında olacak. Bu detayı hangi kısımda anlattığını farkedemedim birazcık daha bilgi verebilir misiniz. Teşekkür ederim cevap için
Randi ile olusturdugumuz sayilarin once B matrisinde karsilik gelen elementlerini daha sonra da B'de secilenlerin A'da karsilik geldiklerini aldiktan sonra (yani kombinasyonlari bulduktan sonra) bu secilen elementleri sort(C1) seklinde buyukten kucuge siralayabiliriz. (C1 ile kastettigim ilk kombinasyonum mesela.)
Tekrar tekrar okuyup söylediklerinizi yapmaya çalıştım ama çok iyi bir yol alamadım. * "Randi ile 1 ile olusturdugumuz B matrisinin eleman sayisi arasinda 3 tane rastgele sayi uretelim. " dediğiniz cümlede randi ile 1 ile kısmını anlayamadım
Merhaba,
Yukarıda bahsettiğimden çok daha kolay bir uygulama geldi aklıma.
Aşağıdaki örneği inceleyebilirsiniz. Burada kritik nokta şu aslında: Eğer ben A'nin elemanlarını rastgele karıştırır ve 3erli olarak gruplandırıdıktan sonra sıralarsam yapmak istediğiniz şeye ulaşmış olurum.
%% MATLABTurkiye.com A = [1 1 1 2 2 2 3 3 3]; rastgele = randperm(length(A),9); %1den A'nin uzunlugu kadar rastgele tekrar etmeyen sayilar uretiyoruz % rastgele urettigim her bir sayi aslinda A'daki bir elementin sira % numarasina karsilik geliyor %asagidaki dongude ucerli olarak sayilari A'dan cekiyor ve sort ile %siraliyorum for say=1:3:length(A); sec = rastgele(say:say+2); B = sort(A(1,sec)) end
teşekkür ederim daha açıklayıcı oldu fakat, run yaptığımda yine sıralama yapamıyorum, örneğin 1 2 2 , 1 3 3 ve 1 2 3 şeklinde çıktılar aldım. Fakat ben hepsinin 1 2 3 şeklinde sıralanmasını istiyorum, bunun içinde öneriniz var mı?
Ben sanırım bir noktayı kaçırdım. Sizin yapmak istediğiniz her seçimde mutlaka bir tane 1, bir tane 2 ve bir tane 3 olması mı?
Ben sanırım bir noktayı kaçırdım. Sizin yapmak istediğiniz her seçimde mutlaka bir tane 1, bir tane 2 ve bir tane 3 olması mı?
Eğer istediğiniz mutlaka 1,2 ve 3 barındıran gruplar ise; rastgele matrisini şöyle oluşturun
1 ile 3 arasında değer alabilen ve 3 tane elamanı olan bir matris oluşturun. => BUNU 3 kere yapın ve uç uca ekleyin.
YANİ şöyle bir şey:
rastgelematrisim = [1 2 3 3 2 1 2 1 3] buradaki her elemen A'daki bir elemente karşılık gelecek.
ŞÖYLE Kİ:
A'nin 1. elementi (Yani ilk 1) 1. gruba gidecek,
A'nin 2. elementi (Yani ikinci 1) 2. gruba gidecek,
A'nin 3. elementi (Yani son 1) 3. gruba gidecek,
A'nin 4. elementi (Yani ilk 2) 3. gruba gidecek,
A'nin 5. elementi (Yani ilk 1) 2. gruba gidecek.
…
merhaba, yanıtınız için teşekkür ederim tekrar deneyip sizi bilgilendireceğim.
Merhaba, söylediğinizi yapmaya çalışırken birşey takıldı aklıma, sonuçta burda 3 farklı rakam grubu vardı bu daha fazla olduğunda bir dizi içindeki farklı rakamları nasıl bulabilirim matlab programında
burda 3 farklı rakam grubu vardı bu daha fazla olduğunda bir dizi içindeki farklı rakamları nasıl bulabilirim matlab programında
Bu ne demek? Söylemeye çalıştığınız şey bir vektör içerisinde eşşiz sayıları bulmak mı? Yani tekrar eden elemanları sadece 1 kere almak mı? Öyleyse
unique(A)