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Ş

Yorumlar

  1. 0 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ıtlaSil
    Yanıtlar
    1. bu fonksiyon mu olacak yoksa normal yazım mı ?

      Sil
    2. biraderim 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

      Sil
    3. Bu yorum yazar tarafından silindi.

      Sil
    4. al babacım 2 sene önce yazmışsın ama ben şimdi gördüm senin işine yaramaz belki ama başkaları yararlanır

      Sil
    5. clc
      top=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)

      Sil
  2. Rand sadece pozitif sayı üretiyor,hem pozitif hem negatif için hangi komutu kullanacağız?

    YanıtlaSil
  3. 1 ile 100 arasında rastgele çift tam sayı nasıl üretebilirim?

    YanıtlaSil
  4. herhangi bir aralık olmadan rastgele bi matris üretmek için hangi komutu kulanmamuz gerikiyor?

    YanıtlaSil
  5. 1ile 7 arasında rastgele sayı gelcek ama artarda aynı sayı olmucak şekilde nasıl yapabilirim

    YanıtlaSil
  6. a)“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.)
    b- 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

    YanıtlaSil
  7. 0 ile 50 arasında rastgele sayılardan oluşan 5x10 boyutunda matris oluşturan matlab kodunu yazınız.

    YanıtlaSil
  8. Herhangi bir A vektöründen ya da matrisinden random sayı nasıl alınabilir.

    YanıtlaSil

Yorum Gönder