Membangkitkan Bilangan Random Berinterval Pada Matlab

Terkadang kita diminta membangkitkan bilangan random, misalnya pecahan dari nol sampai 10 dengan interval 0.5. Fungsi bawaan matlab yang tersedia adalah rand(), sehingga jika maksimal angka 10 maka cukup dengan mengalikan rand()*10 akan diperoleh angka sembarang dari nol hingga 10.

  • rand()*10
  • ans =
  • 2.6297

Jika ingin berinterval tiap 0.5 maka secara logika harusnya 2.5 karena lebih dekat ke 2.5 dibanding 2.0 atau 3.0. Langkah termudah adalah dengan menggunakan bantuan if-else. Jalankan instruksi berikut di command window maka akan diperoleh 2.5.

  • angka=2.6297;
  • steps=0.5;
  • baseangka=floor(angka);
  • pecahan=angka-floor(angka);
  • upper=abs(steps-pecahan);
  • buttom=abs(0-pecahan);
  • if upper<buttom
  • newangka=baseangka+steps
  • else
  • newangka=baseangka
  • end

Kebetulan basis angkanya integer dimana untuk contoh di atas angka 2. Bagaimana jika intervalnya tiap 0.05? Jika angka 2.6297 maka tentu saja basisnya menjadi 2.6 (bukan angka 2 lagi). Logika sederhananya adalah dengan metode di atas, hanya saja basis angka dikalikan 10 (agar koma bergeser ke satu digit di kanan koma), tetapi jangan lupa untuk membagi lagi dengan 10 di akhir prosesnya.

  • angka=2.6297;
  • angka=angka*10;
  • steps=0.5;
  • baseangka=floor(angka);
  • pecahan=angka-floor(angka);
  • upper=abs(steps-pecahan);
  • buttom=abs(0-pecahan);
  • if upper<buttom
  • newangka=(baseangka+steps)/10
  • else
  • newangka=baseangka/10
  • end

Hasilnya:

  • newangka =
  • 2.6500

Kombinasikan dengan fungsi rand(), misalnya membangkitkan 5 bilangan random berinterval 0.05:

  • initial=[];
  • for i=1:5
  • angka=rand()*10;
  • angka=angka*10;
  • steps=0.5;
  • baseangka=floor(angka);
  • pecahan=angka-floor(angka);
  • upper=abs(steps-pecahan);
  • buttom=abs(0-pecahan);
  • if upper<buttom
  • newangka=(baseangka+steps)/10;
  • else
  • newangka=baseangka/10;
  • end
  • angka=[initial;newangka];
  • initial=angka;
  • end

Hasilnya adalah rentetan bilangan random sebanyak lima buah dengan interval 0.05 di bawah ini (hasil berubah-ubah karena random). Semoga bermanfaat.

  • angka =
  • 5.2500
  • 4.1500
  • 6.5500
  • 6.2500
  • 2.9000
Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.