Mebuat fungsi dengan menggunakan Matlab
Outline :
- Fungsi dengan parameter
- Fungsi dengan return value
- Fungsi rekursif
- Fungsi Nested
Matlab merupakan software yang digunakan untuk perhitungan komputasi numerik yang tingkat akurasinya sangat baik. Biasanya software ini digunakan dalam perhitungan yang membutuhkan tingkat presisi yang sangat tinggi seperti bidang computer, mesin, dan lain-lain.
1. Langkah Awal:
Bukalah matlab seperti tampilan berikut ini:

2. Langkah berikutnya :
Buatlah file baru dengan cara file -> new -> M-File. Berikut adalah contoh tampilannya :

Setelah itu, Anda dapat mengimplementasikan fungsi yang akan saya bahas berikut ini :
I. Fungsi dengan parameter
Membuat fungsi dimatlab ditandai dengan keyword function dan diakhiri dengan keyword end. Pada dasarnya, konsep pembuatan fungsi di matlab hampir sama dengan fungsi pada bahasa pemrograman structure ataupun method pada bahasa pemrogramaan OOP (Object Oriented Concept).
Berikut adalah contoh fungsi untuk menghitung data rata-rata dari matriks berukuran 1xn menggunakan matlab
| function average(C)
%jumlah kolom/panjang satu baris dari matriks C panjang = length(C); %mendeklarasikan variable sum dengan nilai default 0 jumlah = 0; %looping dari i = 1 sampai panjang dari satu baris dalam matriks C for i = 1: panjang %menjumlah setiap element pada baris dalam matriks C jumlah = jumlah + C(1,i); end %menghitung nilai rata-rata matriks rata = jumlah/panjang; %menampilkan hasil rata-rata ke layar disp(rata) end |
Setelah membuat file tesebut save dengan nama average.m. Kemudian tekan F5 atau pilih menu Debug à Run pada editor matlab. Setelah itu, jika anda sebelumnya belum membuat path ke folder tempat anda menyimpan file .m maka matlab secara otomatis akan menanyakan kepada anda seperti berikut :

Setelah muncul jendela window seperti diatas maka klik OK pada pilihan pertama. Kemudian coba jalankan fungsi yang telah anda buat dengan meletakan parameter matriks 1xn ke dalam fungsi average tersebut. Berikut adalah contohnya :
| >> Input = [1 2 3 4 5 6 7 8 9 10];
>> Input Input = 1 2 3 4 5 6 7 8 9 10 >> average(Input) 5.5000 >> |
II. Fungsi dengan return value
Untuk fungsi yang memiliki return value, saya akan memberikan contoh yang merupakan modifikasi dari fungsi yang telah saya buat pada bagian pertama. Fungsi meghitung rata akan saya ubah sehingga dapat mereturn suaut nilai yaitu rata-rata yang dihasilkan dari perhitungan.
Berikut adalah contoh programnya :
| function [hasil] = average(C)
%jumlah kolom/panjang satu baris dari matriks C panjang = length(C); %mendeklarasikan variable sum dengan nilai default 0 jumlah = 0; %looping dari i = 1 sampai panjang dari satu baris dalam matriks C for i = 1: panjang %menjumlah setiap element pada baris dalam matriks C jumlah = jumlah + C(1,i); end %menghitung nilai rata-rata matriks rata = jumlah/panjang; hasil = rata; end |
Perhatikan keyword [hasil], dalam matlab return value disimpan dalam bentuk matriks yang didefinisikan oleh ‘[‘ dan ‘]’. Untuk return value lebih dari 1 buah maka bentuknya adalah sebagai berikut
function [A, B, C, ……] = fungsi()
Kembali ke contoh program, hasil yang saya telah definisikan sebagai hasil keluaran atau return value akan menampung nilai rata-rata yang diperoleh variable rata pada baris “hasil = rata”
Pemanggilan dalam matlabnya adalah sebagai berikut :
| >> [hasil ] = average(Input)
hasil = 5.5000 >> hasil hasil = 5.5000 >> |
III. Fungsi rekursif
Fungsi rekursif adalah suatu fungsi yang akan memanggil dirinya sendiri. Saya kira anda pasti telah mengetahui mengenai hal ini. Sekarang saya akan mencoba untuk menyelesaikan relasi rekurensi
f(j, k+1) = f(j, k) – f(j+1, k)
dengan base case yang saya tentukan yaitu k = 10 atau j = 10. base case didapat dengan menggunakan general solution :
f(j, k) = sin(1.0 + (j-k)*pi/3);
Berikut ini adalah soure code dari program tersebut :
| function Hasil = rekursif(j, k)
if k == 10 || j == 10 Hasil = f(j, k); else A = rekursif(j,(k+1)); B = rekursif((j+1), k); Hasil = A + B; end function data = f(j, k) data = sin(1.0 + (j-k)*pi/3); end end |
Perhatikan bahwa fungsi tersebut memanggil dirinya sendiri. Dan dalam contoh program ini terdapat fungsi yang didefinisikan secara nested function yaitu fungsi f dalam fungsi rekursif.
Untuk menjalankan programnya di matlab : Hasil = rekursif(0, 0);
good…tolong gan kalo dua variabel output contohnya begimane…ane coba kok output tetap saja satu
cepet yah di respon
ini contoh buat yang dua ouput,
Matlab File :
function [A, B] = fungsiCoba
A = eye(4);
B = rand(4,4);
end
Cara memanggilnya :
[Var1, Var2] = fungsiCoba
~selamat mencoba
gan tolong bantu ane,,
kok aku udah bener tapi gag bisa jalan ya..
yang kayak contoh di atas noh..
emangnya matlabnya versi berapa ?
mungkin coba tambahin “()” seperti berikut :
matlab file (fungsiCoba.m) –> kasih nama filenya harus sama dengan nama fungsi
function [A, B] = fungsiCoba()
A = eye(4);
B = rand(4,4);
end
——————————————–
di matlab filenya coba dulu tekan F5, nanti matlabnya akan bertanya mengenai path dari file, trus pilih Change Matlab Current Directory.
trus, di matlabnya coba panggil :
[A, B] = fungsiCoba()
~semoga berhasil
berbicara tentang MATLAB, buku yg dibicarakan diatas, ada stok saat ini. silahkan liat2 lainnya juga.
bupka’s online menyediakan buku terpakai (used books) berkualitas dan asli original dengan harga miring,banyak buku teknik. silahkan kunjungi
http://bupka.wordpress.com
mau tanya nih…
gmn cara nyimpan hasil data perhitungan di matlab sehingga dianggap sebagai data base…
plisss dijawab ya
mas, mu tanya misal :
function [keyPoints,descriptors] = sift(image,expandOrigIM)
global verbose;
if(verbose == 1) fprintf(‘mulai\n’); end
sigma = sqrt(2);
g = getFilter(sigma);
if(expandOrigIM == ‘Y’)
[X Y] = meshgrid( 1:0.5:size(image,2), 1:0.5:size(image,1) );
image = interp2( image, X, Y, ‘*linear’ );
end
nah functionnya Sift ya?trs parameternya apa ya?
mohon dijawab ya mas,makasihh..
sudah dijawab via email.
pertanyaan sudah sy posting langsung ke email mas,
sy kurang familiar dengan program matlab
shg sy sertakan M-file yang telah sy buat
M-file tsb belum berjalan dengan baik ketika d panggil
trimakasih
mas q mw nx.. anonymous function, primary and subfunctions, private functions, nested function, function overloading, dan global variables itu apa? trus bedanya masing2 apa? dan contoh programnya dalam matlab masing2 fungsi tersebut seperti apa?
tlg djwb y…
mkc…
Saya buat sebuah function. Bagaimana menjadikan Hasil function menjadi sebuah inputan: ex
function des2bin(input)
desimal=input;
switch desimal
case -15
[1 1 1 1 1] %-15
case -14
[1 1 1 1 0] %-14
case -13
[1 1 1 0 1] %-13
case -12
[1 1 1 0 0] %-12
case -11
[1 1 0 1 1] %-11
case -10
[1 1 0 1 0] %-10
case -9
[1 1 0 0 1] %-9
case -8
[1 1 0 0 0] %-8
case -7
[1 0 1 1 1] %-7
case -6
[1 0 1 1 0] %-6
case -5
[1 0 1 0 1] %-5
case -4
[1 0 1 0 0] %-4
case -3
[1 0 0 1 1] %-5
case -2
[1 0 0 1 0] %-2
case -1
[1 0 0 0 1] %-1
case 0
[0 0 0 0 0] %0
case 1
[0 0 0 0 1] %1
case 2
[0 0 0 1 0] %2
case 3
[0 0 0 1 1] %3
case 4
[0 0 1 0 0] %4
case 5
[0 0 1 0 1] %5
case 6
[0 0 1 1 0] %6
case 7
[0 0 1 1 1] %7
case 8
[0 1 0 0 0] %8
case 9
[0 1 0 0 1] %9
case 10
[0 1 0 1 0] %10
case 11
[0 1 0 1 1] %11
case 12
[0 1 1 0 0] %12
case 13
[0 1 1 0 1] %13
case 14
[0 1 1 1 0] %14
case 15
[0 1 1 1 1] %15
otherwise
disp(‘hanya bilangan bulat negatif/positif’)
end
end
M-file yang di jalankan
input1=-1;
input2=1;
A=des2bin(input1) % error
B=des2bin(input2) % error
Bagaimana Cara menjadika hasil function “des2bin” menjadi inputan bagi variabel A dan B?????
Mohon bantuannya…
terima kasih…
^_^
ass. mohon bantuannya, gmn cara memanggil hasil function jadi inputan bwt perhitungan berikutnya?aku nyoba berkali kali tp undefine functoin or variable trus. tengkyu.