MATLABDA RASGELE SAYI ÜRETME VE DİZİLERE DEPOLAMA
Arkadaşlar şimdi sizlere detaylı bir şekilde matlab için rastgele sayı üretme ve bu üretilen sayıları daha önce anlattığım bir depo vektörüne kaydetmeyi anlatacağım.
İlk olarak rand fonksiyonundan bahsedeyim . rand fonksiyonu 0-1 arasında rastgele sayılar üreten bir fonksiyondur. Eğer parametre almaz ise sadece 1 değer üretir . eğer parametre alırsa dizi yada matris üretir .
Örneğin rand() yazdığımızda bize 0.5797 sonucunu ürettiğini varsayalım . eğer bu rand komutunu
rand(2,1) olarak yazsa idik 2 satır ve 1 sütundan oluşan bir matris üretecek
rand(2,1) 0.5499
0.1450 gibi , şimdi 4x3 boyutunda bir matris oluşturmak istersek
rand(4,3) 4 satır ve 3 sütundan oluşan matrisimiz şu şekil olacaktı.
0.8530 0.4018 0.1839
0.6221 0.0760 0.2400
0.3510 0.2399 0.4173
0.5132 0.1233 0.0497
Arkadaşlar sizde tahmin edersiniz ki buradaki değerler değişkendir ve sizler denediğinizde aynı sonucu almayabilirsiniz :)
şimdi bunları bir değişkene atayalım
örneğin bir X değişkenine atarsak
X=rand(1,10); ifadesi ile X e on elamanlı bir vektör atamış olduk ;
X=rand(7,5) ; yapsa idik X e bu sefer 7 satır ve 5 sütundan oluşan bir matris atamış olurduk.
Şimdi gel gelelim rand ile üretilen bir sayıyı tam sayı basamakları arasında üretmeye. Ne demek istiyorum ?
Yani round ve rand komutları ile belli değerler arasında tam sayı üretelim ve örneğimiz 1 ile 5 arasında rastgele TAMSAYI üreten komut olsun
round---> tam sayıya yuvarlar
rand ----> rastgele 0-1 arasında ondalıklı sayı üretir
round(1+4*rand(3,3)) komutu elamanları 1 ile 5 arasında olan 3x3 boyutunda bir matris üretir.
1 ile 128 arasında yapalım mesela
round(1+127*rand(1,100)) bu komut ne yapar ?
100 elamanlı , elemanları 1 ile 128 arasında rastgele sayılardan oluşan bir dizi oluşturur
YUNUS SAVAŞ
İlk olarak rand fonksiyonundan bahsedeyim . rand fonksiyonu 0-1 arasında rastgele sayılar üreten bir fonksiyondur. Eğer parametre almaz ise sadece 1 değer üretir . eğer parametre alırsa dizi yada matris üretir .
Örneğin rand() yazdığımızda bize 0.5797 sonucunu ürettiğini varsayalım . eğer bu rand komutunu
rand(2,1) olarak yazsa idik 2 satır ve 1 sütundan oluşan bir matris üretecek
rand(2,1) 0.5499
0.1450 gibi , şimdi 4x3 boyutunda bir matris oluşturmak istersek
rand(4,3) 4 satır ve 3 sütundan oluşan matrisimiz şu şekil olacaktı.
0.8530 0.4018 0.1839
0.6221 0.0760 0.2400
0.3510 0.2399 0.4173
0.5132 0.1233 0.0497
Arkadaşlar sizde tahmin edersiniz ki buradaki değerler değişkendir ve sizler denediğinizde aynı sonucu almayabilirsiniz :)
şimdi bunları bir değişkene atayalım
örneğin bir X değişkenine atarsak
X=rand(1,10); ifadesi ile X e on elamanlı bir vektör atamış olduk ;
X=rand(7,5) ; yapsa idik X e bu sefer 7 satır ve 5 sütundan oluşan bir matris atamış olurduk.
Şimdi gel gelelim rand ile üretilen bir sayıyı tam sayı basamakları arasında üretmeye. Ne demek istiyorum ?
Yani round ve rand komutları ile belli değerler arasında tam sayı üretelim ve örneğimiz 1 ile 5 arasında rastgele TAMSAYI üreten komut olsun
round---> tam sayıya yuvarlar
rand ----> rastgele 0-1 arasında ondalıklı sayı üretir
round(1+4*rand(3,3)) komutu elamanları 1 ile 5 arasında olan 3x3 boyutunda bir matris üretir.
1 ile 128 arasında yapalım mesela
round(1+127*rand(1,100)) bu komut ne yapar ?
100 elamanlı , elemanları 1 ile 128 arasında rastgele sayılardan oluşan bir dizi oluşturur
YUNUS SAVAŞ
teşekkürler
YanıtlaSil0 ile 100 arasında rastgele üretilen 50 tamsayıdan asal,çift ve 11'e bölünebilen sayıların toplam sayısını veren proğram nedir? lütfen acil cevaplarmısınız ?
YanıtlaSilbu fonksiyon mu olacak yoksa normal yazım mı ?
Silbiraderim sana ulaşabileceğim bi e-mail adresi verebilirmisin. bu sene ilk dönem matlab ikinci dönem c# dersi alıyorum takıldığım yerlerde yardımcı olabilirsin belki. tabi çok yoğun değilsen
SilBu yorum yazar tarafından silindi.
Silal babacım 2 sene önce yazmışsın ama ben şimdi gördüm senin işine yaramaz belki ama başkaları yararlanır
Silclc
Siltop=0;
for i=1:50
x=round(1+99*rand());
if (mod(x,2)==0)
top=top+x;
fprintf('Çift olanlar: %g \n',x)
end
if (mod(x,11)==0)
top=top+x;
fprintf('11 e bölünenler: %g \n',x)
end
sayac=0;
for j=1:x
if (mod(x,j)==0)
sayac=sayac+1;
end
end
if (sayac==2)
top=top+x;
fprintf('Asal olanlar: %g \n',x)
end
end
fprintf('1 ile 100 arasında rastgele 50 sayıdan çift asal ve 11 e bölünebilen sayıların toplamı: %g',top)
Rand sadece pozitif sayı üretiyor,hem pozitif hem negatif için hangi komutu kullanacağız?
YanıtlaSil-1 ile çarp
Sil1 ile 100 arasında rastgele çift tam sayı nasıl üretebilirim?
YanıtlaSilherhangi bir aralık olmadan rastgele bi matris üretmek için hangi komutu kulanmamuz gerikiyor?
YanıtlaSil1ile 7 arasında rastgele sayı gelcek ama artarda aynı sayı olmucak şekilde nasıl yapabilirim
YanıtlaSila)“XB” adında boyutu (1x1000) olan ve yaklaşık eşit sayıda “1” ve “0” değerlerini rastgele içeren bir vektörü elde eden Matlab kod parçası yazınız. (İpucu: rand() fonksiyonunu rastgele değer üretmek için kullanılabilir. XB vektörü [1 1 0 1 0 0 1 ….] şeklinde olmalı ve kod her çalıştığında farklı 1-0 dizisi oluşmalıdır.)
YanıtlaSilb- Elde ettiğiniz rastgele XB vektörü içerisindeki “1”lerin ve “0”ların sayısını bulan kodu yazınız.
c- Ortalaması “1” varyansı “5” olan Normal dağılıma sahip (1x10000) boyutunda “N” adında bir rastgele gürültü vektörü oluşturan kodu yazınız.
d- N vektörünün ortalaması ve varyansını bulan kodu yazın
0 ile 50 arasında rastgele sayılardan oluşan 5x10 boyutunda matris oluşturan matlab kodunu yazınız.
YanıtlaSilHerhangi bir A vektöründen ya da matrisinden random sayı nasıl alınabilir.
YanıtlaSil