Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> MATLAB

MATLAB - Fungsi

Fungsi adalah sekelompok pernyataan yang bersama-sama melakukan tugas. Dalam MATLAB, fungsi didefinisikan dalam file terpisah. Nama file dan fungsinya harus sama.

Fungsi beroperasi pada variabel dalam ruang kerjanya sendiri, yang juga disebut ruang kerja lokal , terpisah dari ruang kerja yang Anda akses pada prompt perintah MATLAB yang disebut ruang kerja dasar .

Fungsi dapat menerima lebih dari satu argumen input dan dapat mengembalikan lebih dari satu argumen output.

Sintaks dari pernyataan fungsi adalah

function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

Contoh

Fungsi berikut bernama mymax harus ditulis dalam file bernama mymax.m . Dibutuhkan lima angka sebagai argumen dan mengembalikan angka maksimum.

Buat file fungsi, beri nama mymax.m dan ketik kode berikut di dalamnya

function max = mymax(n1, n2, n3, n4, n5)

%This function calculates the maximum of the
% five numbers given as input
max =  n1;
if(n2 > max)
   max = n2;
end
if(n3 > max)
   max = n3;
end
if(n4 > max)
   max = n4;
end
if(n5 > max)
   max = n5;
end

Baris pertama dari sebuah fungsi dimulai dengan kata kunci fungsi . Ini memberi nama fungsi dan urutan argumen. Dalam contoh kita, mymax fungsi memiliki lima argumen input dan satu argumen output.

Baris komentar yang muncul tepat setelah pernyataan fungsi menyediakan teks bantuan. Garis-garis ini dicetak saat Anda mengetik

help mymax

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut

This function calculates the maximum of the
   five numbers given as input

Anda dapat memanggil fungsi sebagai

mymax(34, 78, 89, 23, 11)

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut

ans = 89

Fungsi Anonim

Fungsi anonim seperti fungsi sebaris dalam bahasa pemrograman tradisional, yang didefinisikan dalam satu pernyataan MATLAB. Ini terdiri dari ekspresi MATLAB tunggal dan sejumlah argumen input dan output.

Anda dapat mendefinisikan fungsi anonim langsung di baris perintah MATLAB atau di dalam fungsi atau skrip.

Dengan cara ini Anda dapat membuat fungsi sederhana tanpa harus membuat file untuknya.

Sintaks untuk membuat fungsi anonim dari ekspresi adalah

f = @(arglist)expression

Contoh

Dalam contoh ini, kita akan menulis fungsi anonim bernama power, yang akan mengambil dua angka sebagai input dan mengembalikan angka pertama yang dipangkatkan ke angka kedua.

Buat file skrip dan ketik kode berikut di dalamnya

Demo Langsung
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)

Saat Anda menjalankan file, ini akan menampilkan

result1 =  343
result2 =  7
result3 =  1.0000e-10
result4 =  9.5459

Primer dan Sub-Fungsi

Setiap fungsi selain fungsi anonim harus didefinisikan dalam file. Setiap file fungsi berisi fungsi utama yang diperlukan yang muncul terlebih dahulu dan sejumlah sub-fungsi opsional yang muncul setelah fungsi utama dan digunakan olehnya.

Fungsi utama dapat dipanggil dari luar file yang mendefinisikannya, baik dari baris perintah atau dari fungsi lain, tetapi sub-fungsi tidak dapat dipanggil dari baris perintah atau fungsi lain, di luar file fungsi.

Sub-fungsi hanya dapat dilihat oleh fungsi utama dan sub-fungsi lain dalam file fungsi yang mendefinisikannya.

Contoh

Mari kita tulis sebuah fungsi bernama kuadrat yang akan menghitung akar-akar persamaan kuadrat. Fungsi tersebut akan mengambil tiga input, koefisien kuadratik, koefisien linier dan suku konstan. Itu akan mengembalikan akarnya.

File fungsi quadratic.m akan berisi fungsi utama quadratic dan sub-fungsi disk , yang menghitung diskriminan.

Buat file fungsi quadratic.m dan ketik kode berikut di dalamnya

function [x1,x2] = quadratic(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of quadratic

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end   % end of sub-function

Anda dapat memanggil fungsi di atas dari command prompt sebagai

quadratic(2,4,-4)

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut

ans = 0.7321

Fungsi Bersarang

Anda dapat mendefinisikan fungsi di dalam tubuh fungsi lain. Ini disebut fungsi bersarang. Fungsi bersarang berisi salah satu atau semua komponen fungsi lainnya.

Fungsi bersarang didefinisikan dalam lingkup fungsi lain dan mereka berbagi akses ke ruang kerja fungsi yang memuatnya.

Fungsi bersarang mengikuti sintaks berikut

function x = A(p1, p2)
...
B(p2)
   function y = B(p3)
   ...
   end
...
end

Contoh

Mari kita tulis ulang fungsi kuadrat , dari contoh sebelumnya, namun kali ini fungsi disk akan menjadi fungsi bertingkat.

Buat file fungsi quadratic2.m dan ketik kode berikut di dalamnya

function [x1,x2] = quadratic2(a,b,c)
function disc  % nested function
d = sqrt(b^2 - 4*a*c);
end   % end of function disc

disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of function quadratic2

Anda dapat memanggil fungsi di atas dari command prompt sebagai

quadratic2(2,4,-4)

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut

ans =  0.73205

Fungsi Pribadi

Fungsi pribadi adalah fungsi utama yang hanya dapat dilihat oleh sekelompok fungsi lain yang terbatas. Jika Anda tidak ingin mengekspos implementasi suatu fungsi, Anda dapat membuatnya sebagai fungsi pribadi.

Fungsi pribadi berada di subfolder dengan nama khusus pribadi .

Mereka hanya dapat dilihat oleh fungsi di folder induk.

Contoh

Mari kita tulis ulang kuadrat fungsi. Namun kali ini, disk fungsi menghitung diskriminan, akan menjadi fungsi pribadi.

Buat subfolder bernama private di direktori kerja. Simpan file fungsi berikut disc.m di dalamnya

function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end      % end of sub-function

Buat fungsi quadratic3.m di direktori kerja Anda dan ketik kode berikut di dalamnya

function [x1,x2] = quadratic3(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 

x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end      % end of quadratic3

Anda dapat memanggil fungsi di atas dari command prompt sebagai

quadratic3(2,4,-4)

MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut

ans =  0.73205

Variabel Global

Variabel global dapat digunakan bersama oleh lebih dari satu fungsi. Untuk ini, Anda perlu mendeklarasikan variabel sebagai global di semua fungsi.

Jika Anda ingin mengakses variabel tersebut dari ruang kerja dasar, deklarasikan variabel tersebut pada baris perintah.

Deklarasi global harus terjadi sebelum variabel benar-benar digunakan dalam suatu fungsi. Ini adalah praktik yang baik untuk menggunakan huruf kapital untuk nama variabel global untuk membedakannya dari variabel lain.

Contoh

Mari kita buat file fungsi bernama average.m dan ketik kode berikut di dalamnya

function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end

Buat file skrip dan ketik kode berikut di dalamnya

global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)

Saat Anda menjalankan file, itu akan menampilkan hasil berikut

av =  35.500

MATLAB

  1. 10 Fungsi Populer di Stratasys Insight
  2. Fungsi C++ dengan Contoh Program
  3. Fungsi Python Lambda dengan CONTOH
  4. Fungsi Verilog
  5. C - Fungsi
  6. MATLAB - Ikhtisar
  7. MATLAB - Variabel
  8. MATLAB - Perintah
  9. MATLAB - Tipe Data
  10. MATLAB - Matriks