تابع در متلب
یکی از ویژگیهای متلب، توانایی تعریف و استفاده از توابع است که به کاربران این امکان را میدهد تا کدهای خود را به شکل ماژولار و قابل استفاده مجدد بنویسند. این کد ها برای استفاده در انجام پروژه متلب کارایی فراونی دارد و کاربران با ادامه این محتوا به همراه مثال کاربردی استفاده از این توابع رو فرا می گیرند.
1- تعریف تابع
در متلب، تابع یک بلوک از کد است که ورودیهایی را میگیرد و خروجیهایی را تولید میکند. توابع در متلب میتوانند برای انجام محاسبات پیچیده، پردازش دادهها، و ایجاد برنامههای کاربردی مفید باشند. یک تابع در متلب به صورت زیر تعریف میشود:
function [out1, out2, …] = functionName(in1, in2, …)
% توضیحات
% بدنه تابع
end
تعریف هر بخش تابع بصورت زیر است:
– function کلمه کلیدی است که برای تعریف تابع استفاده میشود.
– [out1, out2, …] لیست خروجیهای تابع است.
– functionName نام تابع است.
– (in1, in2, …) لیست ورودیهای تابع است.
% توضیحات برای اضافه کردن توضیحات در مورد تابع است.
– end برای پایان دادن به تعریف تابع استفاده میشود.
مثال 1- تابعی برای محاسبه مجموع دو عدد
بصورت زیر است که در داخل متلب بصورت کدنویسی زیر وارد می شود. باید توجه کرد در ویرژنهای پایین تر همانند Matlab2015 بایستی function در اسکریپت جداگانهای باشد ولی در ویرژن های بالاتر میتوان برنامه اصلی (main) و برنامه فانکشن (function) را در یک اسکریپت همانند مثال زیر قرار داد.
function sum = addNumbers(a, b)
% تابعی برای محاسبه مجموع دو عدد
sum = a + b;
end
کدنویسی متلب:
clc; clear; close all
S=addNumbers(10,2)
function sum = addNumbers(a, b)
% تابعی برای محاسبه مجموع دو عدد
sum = a + b;
end
خروجی برنامه:
12
2- انواع توابع در متلب
متلب انواع مختلفی از توابع را پشتیبانی میکند که شامل توابع محلی، توابع تو در تو، توابع با تعداد ورودی و خروجی متغیر، و توابع نابلد است.
2-1: توابع محلی
توابع محلی (Local Functions ) توابعی هستند که در همان فایل اسکریپت تعریف شدهاند و تنها در آن فایل قابل دسترسی هستند همانند مثال 1 و مثال 2.
function mainFunction()
result = localFunction(5);
disp(result);
end
function output = localFunction(x)
output = x^2;
end
خروجی برنامه:
25
2-2: توابع تو در تو (Nested Functions)
توابع تو در تو توابعی هستند که درون یک تابع دیگر تعریف میشوند. این توابع میتوانند به متغیرهای تابع خارجی دسترسی داشته باشند.
function outerFunction()
a = 5;
function nestedFunction()
disp(a);
end
nestedFunction();
end
خروجی برنامه:
5
2-3: توابع نابلد (Anonymous Functions)
توابع نابلد، توابعی هستند که به صورت مختصر و بدون نیاز به فایل جداگانه تعریف میشوند. این توابع معمولاً برای عملیاتهای ساده و یک خطی استفاده میشوند.
مثال4-
clc; clear; close all
f = @(x) x^2 + 3*x + 2;
result = f(5)
خروجی برنامه:
result =42
4-2: توابع با بازگشت مقادیر چندگانه
در متلب، میتوانید چندین مقدار خروجی از یک تابع بازگردانید.
مثال5:
clc; clear; close all
[sum, product] = computeSumProduct(10,5)
function [sum, product] = computeSumProduct(a, b)
sum = a + b;
product = a * b;
end
خروجی برنامه:
sum = 15
product = 50
2-5: توابع درون خطی (Inline Functions)
توابع درون خطی به شما این امکان را میدهند که کدهایی را به صورت مستقیم درون دیگر توابع بنویسید.
مثال6-
clc; clear; close all
out=useInlineFunc(10)
function result = useInlineFunc(x)
inlineFunc = @(y) y^2 – 2*y + 1;
result = inlineFunc(x);
end
خروجی برنامه:
out = 81


