MATLAB Rastgele Sayı Üretme (rand, randi, randn)


Bu yazımızda MATLAB’da bulunan gömülü fonksiyonlara giriş yapacağız. Gömülü fonksiyonlar, bize programlama yaparken büyük kolaylıklar sağlarlar. Örneğin bir dizinin en büyük elemanını bulmak için döngülerle, kodlarla uğraşmadan tek komut ile sonuca ulaşabiliriz. Bu yazımızda, rastgele sayı üreten gömülü fonksiyonları inceleyeceğiz. Kullanacağımız fonksiyonlar:

  • rand()”: Uniform(düzgün, tekdüze) dağılmış sayı üretmek için
  • randi()”: Uniform(düzgün, tekdüze) dağılmış tam sayı üretmek için
  • randn()”: Normal dağılmış sayı üretmek için
  • randperm(n)”: 1 – n arası tam sayıların permütasyonu için

“rand()” Fonksiyonu

0 ile 1 arasında, NxN uniform sayılar üretmek için:

%Syntax: rand(N)
rand(3)

0 ile 1 arasında, MxN uniform sayılar üretmek için:

%Syntax: rand(M,N)
rand(2,5) %2x5

Belirli bir aralıktaki sayılardan, belirli adet rastgele sayı üretmek istiyorsak; “a” aralığın başlangıç sayısı, “b” aralığın bitiş sayısı olmak üzere, “a + (ba) * rand(M,N)” formülünü kullanırız. Örnek olarak, -10 ile 10 arasında “2×5” matris olacak şekilde sayı üretmek istiyorsak: “-10 + (10 – (-10)) * rand(2,5)” komutunu kullanmalıyız.

%Syntax: a + (b-a) * rand(M,N)
-10 + (10+10) * rand(2,5) %-10, 10 arasında 2x5

Gerçek ve sanal kısmı 0 ile 1 arasında normal dağılmış karmaşık sayı üretme:

%Syntax: rand + 1i * rand
rand + 1i * rand

“randi()” Fonksiyonu

1 ile N arasında, rastgele bir tam sayı üretmek için:

%Syntax: randi(N)
randi(7)

1 ile N arasında, MxM uniform tam sayılar üretmek için:

%Syntax: randi(N,M)
randi(7,3) %1-7 arası, 3x3

a ile b arasında, MxN uniform tam sayılar üretmek için:

%Syntax: randi([a b], M, N)
randi([-10 10], 2, 5) %-10 ile 10 arası, 2x5

“randn()” Fonksiyonu

NxN normal dağılmış rastgele sayılar üretmek için:

%Syntax: randn(N)
randn(3) %3x3

MxN normal dağılmış rastgele sayılar üretmek için:

%Syntax: randn(M,N)
randn(2,5) %2x5

Gerçek ve sanal kısmı normal dağılmış karmaşık sayı üretme:

%Syntax: randn + 1i*randn
randn + 1i*randn

“randperm()” Fonksiyonu

“randperm()” fonksiyonu, 1 ile bizim belirlediğimiz “N” aralıktaki tam sayıların rastgele permütasyonunu verir. 

%Syntax: randperm(N)
randperm(5) % 1 ile 5 arası sayıların permütasyonu
randperm(5) % 1 ile 5 arası sayıların permütasyonu 2

1 ile N arası tam sayıların M tanesinin permütasyonu için:

%Syntax: randperm(N)
randperm(5) % 1 ile 5 arası sayıların permütasyonu
randperm(5) % 1 ile 5 arası sayıların permütasyonu 2

“rng()Fonksiyonu

Rastgele sayı üretilirken, başlangıç olarak bir sayı seçilir. Rastgele sayı üretecinin başlangıç sayısını kontrol ederek, rastgele sayı üretirken aynı sonuçları alabiliriz:

b_s = rng;
randperm(5) %1-5 arası tam sayıların rastgele permütasyonu
rng(b_s)
randperm(5) %Aynı sonuç

Yeni içerikler için sitemizi takip etmeyi ve sitemize abone olmayı unutmayın. Yeni yazılarda görüşmek üzere!

close

Yeni yazılardan haberdar olmak için sitemize abone olun.

İstenmeyen posta göndermiyoruz! Sadece yeni yazılarla ilgili mail alacaksanız.

2 thoughts on “MATLAB Rastgele Sayı Üretme (rand, randi, randn)

  • 10 Şubat 2021 tarihinde, saat 09:53
    Permalink

    merhaba hocam,
    elimde A=[1 2 5 4 8 78 45 56 23 12 7 9 50] diye bir matris var, elemanları sadece bu A matrisinin elemanlarından oluşan rastgele yeni matris oluşturmak istiyorum. nasıl bir yol izleyebilirim hangi komutla

    Yanıtla
    • 10 Şubat 2021 tarihinde, saat 20:49
      Permalink

      Kaça kaç matris olacak onu belirtmemişsiniz ancak örnek olarak;

      %A ile aynı boyutta, aynı elemanlara sahip rastgele matris:
      A=[1 2 5 4 8 78 45 56 23 12 7 9 50];
      B=reshape(A(randperm(numel(A))),size(A))

      %A'nın elemanlarından, farklı boyutlarda matris için:

      A=[1 2 5 4 8 78 45 56 23 12 7 9 50];
      B=[];
      for i = 1:3
      for j=1:3
      rastgele=randi(length(A));
      B(i,j) = A(rastgele);
      A(rastgele)=[];
      end
      end

      Yanıtla

veli için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir