0 ,2,4,……,100 e kadar çifter çifter giden sayı dizisinde rastgele sayıyı nasıl seçtirebilirim?
Bunda bir hata yok ama rastgele değer atama kodu olan randi komutunu yazdğımda hata alıyorum
randi([0:2:100],1,5)
Error using randi
First input must be a positive scalar integer value IMAX, or two integer values [IMIN IMAX]
with IMIN less than or equal to IMAX.
randi'nin ilk girdisi olarak [0:2:100] dizisini göndermişsiniz. Sanırım "randi bunlardan rastgele bir tane seçsin" istiyorsunuz. Oysa randi bu şekilde çalışmaz. Ona minimum ve maksimum değerler verilir, o aradan rastgele seçim yapar. Tabi bu durumda, tek sayı da seçebilir.
Aslında yapmak istediğiniz, oluşturduğunuz diziden rastgele elemanlar çekmek. randi ile dizinin kaçıncı elemanını seçeceğinizi bulacaksınız. Dizinizden rastgele bir eleman seçince de rastgele bir çift sayı seçmiş olacaksınız.
Yani,
dizi = 0:2:100
şeklinde diziyi kaydettikten sonra,
rastgele_bir_sayi = dizi(randi([1 51]))
ile rastgele bir dizi elemanı çekebilirsiniz. Birden fazla isterseniz,
rastgele_dort_sayi = dizi(randi([1 51],1,4))
"51" sayısı, diziniz 51 elemanlı olduğu için. Aslında onu da "numel(dizi)" ile değiştirerek, dizinin boyu değiştiğinde bile kodun calısmasını saglayabilirsiniz.