توابع در زبان متلب – آموزش متلب

  • جمعه ۲۰ فروردین ۱۴۰۰
  • بازدید ۲۵۲ نفر

توابع در زبان متلب   آموزش متلب

توابع در زبان متلب

تابع یک گروه از دستورات است که با هم یک وظیفه را انجام می دهند. در زبان متلب توابع در فایل های جداگانه تعریف می شوند. نام فایل و تابع باید یکسان باشد. توابع بر روی متغیرهایی که در workspace خودشان قرار دارد (local workspace نیز گفته می شود) عمل می کند. توابع می توانند بیشتر از یک آرگومان ورودی داشته باشند و همنین می توانند بیش از یک آرگومان خروجی داشته باشند. سینتکس مربوط به یک تابع در متلب:

مثال:

تابعی که در مثال زیر تعریف شده (تابع mymax) باید در داخل فایل mymax.m نوشته شود. این تابع ۵ عدد به عنوان ورودی می گیرد و بزرگترین آنها را به عنوان خروجی برمیگرداند. یک فایل با نام mymax.m ایجاد کرده و کد زیر را در آن بنویسید:

اولین خط یک تابع با کلمه کلیدی function شروع می شود و به دنبال آن آرگومان خروجی و بعد از آن نام و ترتیب آرگومان های ورودی مشخص می شود. دو خط بعدی که کامنت خوانده می شوند راهنمای تابع هستند. این راهنما زمانی که دستور زیر را تایپ کنید نمایش داده می شوند:

خروجی:

برای فراخوانی تابع فوق می توانیم به شکل زیر عمل کنیم:

خروجی:

توابع بی نام (Anonymous)

یک تابع بی نام مانند تابع inline در زبان های برنامه نویسی سنتی است. شما می توانید یک تابع بی نام را در خط فرمان متلب و یا در داخل فایل اسکرپیت تعریف کنید. این روشی است که با آن می توان توابع ساده را بدون ایجاد فایل برای آن ها ایجاد کرد. در زیر می توانید سینتکس مربوط به تابع بی نام را مشاهده کنید:

مثال:

در این مثال یک تابع به نام power ایجاد میکنیم که دو عدد به عنوان ورودی می گیرد و به عنوان خروجی عدد اول را به توان عدد دوم رسانده و برمیگرداند.

خروجی:

توابع اصلی و فرعی

همه توابع به غیر از تابع بی نام باید در داخل یک فایل تعریف شوند. هر فایل تابع شامل یک تابع اصلی لازم است که در ابتدا تعریف می شود و هر تعدادی از توابع فرعی (sub-functions) که بعد از تابع اصلی تعریف و توسط تابع اصلی استفاده می شود.

توابع اصلی را می توان بیرون از فایلی که در آن تعریف شده اند، فراخوانی کرد اما توابع فرعی این قابلیت را ندارند. توابع فرعی فقط برای تابع اصلی و سایر توابع فرعی تعریف شده در آن فایل قابل مشاهده هستند.

مثال:

در این مثال یک تابع به نام quadratic ایجاد می کنیم که کارش محاسبه ریشه یک معادله درجه دوم است. یک فایل با نام quadratic.m ایجاد کرده و تابع اصلی quadratic و تابع فرعی disc را مانند نمونه زیر در آن بنویسید:

شما می توانید تابع فوق را از خط فرمان به شکل زیر فراخوانی کنید:

خروجی:

توابع تو در تو

شما می توانید توابع را در داخل بدنه یک تابع دیگر تعریف کنید. به این نوع توابع، توابع تو در تو گفته می شود. توابع تو در تو در محدود تابع دیگر تعریف می شوند و دسترسی به workspace را به اشتراک می گذارند. در زیر  می توانید سینتکس مربوط به تابع تو در تو را مشاهده کنید:

 مثال:

یگ فایل با نام quadratic2.m ایجاد کرده و کد زیر را در آن بنویسید:

شما می توانید تابع فوق را از خط فرمان به شکل زیر فراخوانی کنید:

خروجی:

توابع خصوصی (Private)

تابع خصوصی یک تابع اصلی است که فقط برای گروه محدودی از توابع دیگر قابل مشاهده است. اگر نمی خواهید جزئیات پیاده‌سازی یک تابع آشکار باشد، می توانید آن را صورت private تعریف کنید. توابع خصوصی در زیرپوشه هایی با نام private قرار می گیرند و فقط برای توابعی که در پوشه والد قرار دارند، قابل مشاهده هستند.

مثال:

در این مثال تابع quadratic را تغییر می دهیم. این بار تابع disc به صورت private خواهد بود. یک زیرپوشه به نام private ایجاد کرده و یک فایل با نام disc.m در آن ایجاد کرده و کد زیر را در آن بنویسید:

یک فایل دیگر با نام quadratic3.m در پوشه والد ایجاد کرده و کد زیر را در آن بنویسید:

شما می توانید تابع فوق را از خط فرمان به شکل زیر فراخوانی کنید:

خروجی:

متغیرهای سراسری (Global)

متغیرهای سراسری می توانند توسط بیش از یک تابع به اشتراک گذاشته شوند. برای این کار شما باید متغیر را در تمام توابع به صورت global اعلان کنید. اگر می خواهید به آن متغیر از base workspace دسترسی داشته باشید، پس باید آن در خط فرمان اعلان کنید. بهتر است برای نام متغیرهای سراسری از حروف بزرگ استفاده کنید تا بتوان آن ها را از سایر متغیرها تشخیص داد.

مثال:

یک فایل با نام average.m ایجاد کرده و کد زیر را در آن بنویسید:

یک فایل اسکریپتی ایجاد کرده و کد زیر را در آن بنویسید:

خروجی:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است