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

Penulis: rahmadya

I'm a simple man .. Lahir di Sleman Yogyakarta, 7 Juni 1976 TK : - (tidak ada TK di tj Priok waktu itu) SDN : Papanggo, Jakarta 83 - 89 SMPN : 129, Jakarta 89 - 92 SMAN : 8, Yogyakarta 92 - 95 Univ. : Fak. Teknik UGM, Yogyakarta 95 - 2001 Pasca. : Tek. Informatika STMIK Nusa Mandiri, Jakarta 2008 - 2010 Doctoral : Information Management Asian Institute of Technology, Thailand 2013 - 2018 Pekerjaan: Tek. Komputer AMIK BSI Jakarta : 2002 - 2005 IT Danamon Jakarta : 2005 - 2008 Tek. Informatika STMIK Nusa Mandiri Jakarta : 2005 - 2008 Univ. Darma Persada : 2008 - Skrg Fakultas Teknik Universitas Islam "45" Bekasi : 2008 - Skrg ( Homebase)

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 Google

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

Gambar Twitter

You are commenting using your Twitter 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.