تعریف تابع در متلب (انواع روش ها با مثال و همه نکات کاربردی)

رتبه: 0 ار 0 رای sssss
تعریف تابع

یک تابع بلوکی از چند دستور است که کار خاصی انجام می دهند. توابع امکان استفاده مجدد از کدها را برای کاربر فراهم می کنند. متلب (MATLAB) توابع از پیش تعریف شده زیادی دارد که قابل استفاده هستند مانند sin()، fact()،cos()  و … . علاوه بر اینها کاربر می تواند توابع مورد نظر و سفارشی خود را نیز تعریف کنند.

تعریف تابع (Function) در متلب یکی از بنیادی‌ترین روش‌ها برای ساخت کدهای تمیز، ماژولار و قابل بازاستفاده است. توابع برخلاف اسکریپت‌های ساده (Scripts)، فضای حافظه مستقل خود (Local Workspace) را دارند و متغیرهای آن‌ها حافظه اصلی متلب را شلوغ نمی‌کنند.

function [out1, out2] = myFunctionName(in1, in2)
% MYFUNCTIONNAME این بخش توضیحات راهنمای تابع است
% خروجی‌ها: out1 (جمع) و out2 (ضرب)
out1 = in1 + in2;
out2 = in1 * in2;
end

۲. قوانین و نکات حیاتی در نام‌گذاری و ذخیره‌سازی

1.یکسان بودن نام فایل و نام تابع (قانون طلایی):

نام فایلی که ذخیره می‌کنید باید دقیقاً با نام تابع داخل کد یکی باشد (مثلاً فایل myFunctionName.m). اگر این دو متفاوت باشند، متلب کد را بر اساس نام فایل فراخوانی می‌کند و نام داخل کد را نادیده می‌گیرد!

2.تعریف خط اول (Function Header):

خط اول حتماً باید با کلمه کلیدی function شروع شود. اگر تابع خروجی ندارد، بخش [out1, out2] = حذف می‌شود و اگر خروجی فقط یک متغیر است، نیازی به کروشه نیست.

3.افزودن کامنت‌های راهنما (Help Header):ساخت دفترچه راهنمای اختصاصی.

کامنت‌هایی که بلافاصله در سطر بعد از تعریف تابع نوشته می‌شوند، اهمیت زیادی دارند. هرگاه کاربر دستور help myFunctionName را در پنجره فرمان بزند، متلب دقیقاً همین کامنت‌ها را به عنوان راهنمای کد نمایش می‌دهد.

4.ذخیره‌سازی در مسیر جاری (Path):

فایل تابع باید حتماً در «پوشه کاری جاری متلب» (Current Folder) یا در یکی از پوشه‌های اضافه شده به مسیر سیستم (MATLAB Search Path) ذخیره شود تا متلب بتواند آن را شناسایی کند.

۳. روش مدرن اعتبارسنجی ورودی‌ها (arguments block)

از نسخه R2019b به بعد، متلب ساختار بسیار قدرتمندی به نام arguments را معرفی کرده است که کنترل نوع داده، سایز و تعیین مقادیر پیش‌فرض را فوق‌العاده ساده می‌کند:

function area = calculateRectangle(length, width)
arguments
length (1,1) double {mustBePositive} % باید یک عدد اعشاری مثبت و تکی باشد
width (1,1) double {mustBePositive} = 5 % مقدار پیش‌فرض ۵ در صورت وارد نشدن
end
area = length * width;
end

(با این کار، اگر کاربر یک عدد منفی یا متن وارد کند، متلب به صورت خودکار خطا داده و از اجرای کد اشتباه جلوگیری می‌کند).

۴. انواع توابع در متلب (کدام را کجا استفاده کنیم؟)

نوع تابع ویژگی و کاربرد اصلی مثال یا نحوه تعریف
تابع اصلی (Primary Function) همان تابع اول داخل فایل .m که از خارج از فایل هم قابل فراخوانی است. function y = main(x)
توابع محلی (Local / Subfunctions) توابع کمکی که در ادامه همان فایل نوشته می‌شوند و فقط توسط تابع اصلی همان فایل قابل استفاده هستند. نوشته شده زیر تابع اصلی در همان فایل
توابع بی‌نام (Anonymous) برای معادلات ریاضی کوتاه و یک خطی بدون نیاز به ساخت فایل .m مجزا. f = @(x) x.^2 + 2*x + 1;
توابع تو‌در‌تو (Nested Functions) توابعی که کاملاً داخل بدنه یک تابع دیگر تعریف می‌شوند و به تمام متغیرهای تابع والد دسترسی مستقیم دارند. function parent ... function child ... end ... end

توضیحات بیشتر با مثال و جزئیات بیشتر

ساختار

function پارامترهای خروجی = نام تابع(پارامترهای ورودی)

       % دستورات

end

نمونه زیر را ببینید:

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

  • تابع با کلمه کلیدی function شروع می شود.
  • سپس متغیرهای برگشتی از تابع تعریف می شوند.
  • پس از = نام تابع نوشته می شود.
  • داخل پرانتز آرگومان های ورودی تابع نوشته می شود.

در ادامه چند مثال برای آشنایی با نحوه استفاده از توابع در متلب آورده شده است.

مثال 1: تابع با یک خروجی

تابع زیر میانگین بردار ورودی را محاسبه می کند.

% Input vector

values = [12, 4, 8.9, 6, 3];

 % function return mean of vector c

function m = stat(x)

    n = length(x);

    m = sum(x)/n;

end

mean = stat(values)

 خروجی

mean = 6.7800

مثال 2: تابع با چند مقدار بازگشتی

چرب زبان

متلب رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، حل ساده سخت ترین پروژه ها، شبیه سازیها و مسائل، فوق العاده پولساز، خرید و دانلود!

تابع زیر nCr و nPr را برای ورودی های n و r را محاسبه می کند.

% Input

x = 3;

y = 2;

 % Function return p = nPr and c = nCr

function [p,c] = perm(n,r)

    p = factorial(n)/factorial(n-r);

    c = p*factorial(r);

end

[p,c] = perm(x,y)

خروجی

p = 6

c = 12

کجا و به چه دلیل باید از نرم افزار متلب استفاده کنیم یا نکنیم؟

مثال 3: چند تابع در یک فایل

دو تابع زیر در فایل تعریف می شوند:

  • تابع ()stat2 انحراف معیار استاندارد بردار ورودی را محاسبه می کند.
  • تابع ()stat1 میانگین بردار ورودی را محاسبه می کند.

values = [12, 4, 8.9, 6, 3];

 % Function returns standard deviation of vector x

function sd = stat2(x)

    m = stat1(x);

    n = length(x)

    sd = sqrt(sum((x-m).^2/n));

end

% Function returns mean of vector x

function m = stat1(x)

    n = length(x);

    m = sum(x)/n;

end

stat2(values)

خروجی

n = 5

ans = 3.2975

مثال 4: تابع بدون پرامترهای ورودی

در این مثال تابع ()sin_plot برای ترسیم تابع ()sin را تعریف شده است.

% Plotting sin(x) function

function sin_plot()

    x = linspace(0,2*pi,100);

      y = sin(x);

    plot(x,y);

end

sin_plot()

خروجی

 

حتما دانلود کنید: آموزش کامل برنامه نویسی در متلب (22 جلسه رایگان به زبان فارسی)

profile name
سریع آسان

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «تعریف تابع در متلب (انواع روش ها با مثال و همه نکات کاربردی)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید