آموزش متلب – نکاتی در مورد توابعپنجشنبه 21, مه 2020
آشنایی با محیط Matlab
در ادامه آموزش های سایت همیارپروژه برنامه نویسی متلب ارائه خواهد شد .آموزشها از مقدماتی تا پیشرفته ادامه دارد و ما به شما کدنویسی در نرم افزار متلب را یاد خواهیم داد. با ما همراه باشید.
تبدیل سریع فوریه در متلب:
کاربرد: جهت استخراج نمودن یک سیگنال مخصوص از یک سیگنال مرکب با استفاده از این تابع استفاده می شود.
پرکاربردترین توابع :
روش استفاده از این توابع در نرم افزار متلب به صورت زیر می باشد:
در ابتدا با استفاده از یک سیگنال متناوب و یک سیگنال رندوم ( نویز) یک سیگنال مرکب را ایجاد می نماییم. همانطور که می دانید در شرایط واقعی باید از طریق آزمایش این سیگنال را بدست بیاوریم:
اکنون فرض نمایید که سیگنال فوق را در اختیار داریم و قصد داریم که بخش متناوب آنرا استخراج نماییم:
نمودار طیف فوریه به صورت زیر می باشد:
مزایای استفاده کردن از توابع به جای فایلهای اسکریپت
- سرعت بالاتر
- صرفه جویی در حافظه کامپیوتر
- توسعه توانایی های متلب
تابع ها بر خلاف فایلهای اسکریپت در زمان اجرا یکبار کامپایل واجرا می شوند. در حالیکه فایلهای اسکریپت سطر به سطر کامپایل و اجرا می شود . این مساله باعث افزایش سرعت اجرای توابع در مقایسه با فایلهای اسکریپت خواهد شد.
متغیرهای تعریف شده در تابع ها پس از پایان اجرای آن از حافظه پاک می شوند و بطور کلی فضای کاری تابع ها مستقل از فضای کاری متلب است . مخصوصا در مواقعی که برنامه با ماتریسهای بزرگ همانند تصویر ها کار می کند بهتر می باشد از توابع استفاده نمود.
بیشتر دستورهای اصلی متلب و جعبه ابزار های آن با استفاده از تابع ها نوشته شده است. به عبارت دیگر به سادگی می توانیم قابلیتهایی که در حال حاضر در متلب وجود ندارند را با نوشتن یک مجموعه از تابع ها به آن بیافزاییم. این مساله سبب می شود که در دهه گذشته قابلیتهای نرم افزار متلب در رشته های مختلف علمی و فنی با سرعت چشمگیری توسعه یابد.
نکته مهم:
ساده تر است که در هنگام نوشتن یک برنامه آن را به صورت اسکریپت بنویسیم تا اشکالزدایی آن راحت تر باشد اما پس از کامل شدن برنامه آنرا به فانکشن تبدیل نمایید تا سرعت و کیفیت آن افزایش بیابد.
تفاوت تابع ها و فایل های متنی در متلب
- فایل های متنی سطر به سطر ترجمه و اجرا می شوند اما تابع های یکبار بطور کامل ترجمه و سپس اجرا می شوند.
- محیط کاری فایل های متنی همان محیط کاری نرم افزار متلب می باشد اما محیط کاری هر تابعی مختص خود اوست یعنی اگر متغیری در یک تابع تعریف شود تنها در ان تابع قابل دسترسی می باشد و برعکس متغیر های تعریف شده در محیط کاری متلب در داخل توابع تعریف شده نمی باشند. مگر اینکه به صورت عمودی تعریف شده باشند.
- توابع تنها از طریق آرگومانهایش با محیط خارج ارتباط برقرار می کند.
نحوه ایجاد توابع:
تنها تفاوت ظاهری یک تابع و یک فایل متنی آن است که سطر نخست یک تابع با کلمه کلیدی function شروع می گردد که شکل کلی آن به صورت زیر می باشد:
نکات مهم:
- توابع ممکن است هیچ آرگومان ورودی و یا خروجی نداشته باشند.
- نخستین خط بعد از اعلان توابع , یک جمله توضیحی می باشد که در هنگام استفاده از دستور lookfor در نرم افزار متلب مورد جستجو قرار می گیرد.
- تمامی سطر های توضیحی تا اولین سطر غیر توضیحی در زمان استفاده از دستور help نمایش داده خواهد شد.
نکته:
بهتر می باشد که در زمان نوشتن یک تابع حتما یک یا دو سطر در مورد نحوه استفاده از آن و عملکرد آن توضیح داده شود تا کاربر بتواند با استفاده از دستور help نرم افزار متلب با روش استفاده از آن توابع و قابلیت های آنها آشنا خواهیم شد.
فرمان های return و error
به وسیله این دو دستور می توانیم اجرای یک تابع را پیش از رسیدنش به انتهای آن متوقف نمود . متفاوت بودن دستور error با دستور return در این است که دستور error می تواند یک پیام خطا را نیز به معنای آگاه نمودن کاربر نمایش دهد.
به مثال زیر توجه نمایید:
تعیین نمودن تعداد آرگومانهای به کار رفته در زمان اجرا:
در نرم افزار متلب می توانیم توابع را با تعداد آرگومان کمتر از تعداد آرگومان موجود در تعریف تابع نیز فراخوانی می شود . به عنوان نمونه تابع size در نرم افزار متلب با دو آرگومان نوشته شده است اما با یک آرگومان نیز قابل اجرا می باشد که البته مقدار بازگشتی به تعداد آرگومانهای مورد استفاده بستگی دارد.
در صورتیکه بخواهیم از تعداد آرگومانها در حین اجرا مطلع شویم باید از تابع های nargin و nargout به ترتیب برای تعداد آرگومانهای ورودی و تعداد آرگومانهای خروجی استفاده می نماییم.
همچنین تابع های nargchk و nargoutchk تعداد آرگومانهای ورودی و خروجی را چک می کنند و در صورتیکه با تعداد در خواست شده برابر نباشند پیام خطای مناسب را نشان می دهند.
نکاتی در مورد توابع:
- در یک فایل می توانیم بیش از یک تابع را تعریف نماییم . در این صورت تمامی این تابع ها می توانند یکدیگر را فراخوانی نمایند اما تنها اولین تابع از خارج از این فایل قابل فراخوانی می باشد.
- نام فایل با نام نخستین تابع آن یکسان می باشد. در غیر این صورت به منظور اجرا نمودن تابع باید از نام فایل به جای نام تابع استفاده شود. که البته کار زیاد صحیحی نمی باشد.
در اینجا آشنایی با محیط متلب بخش بیست و هشتم به پایان رسیده است و در آموزش های بعدی به مباحث دیگر آموزش متلب می پردازیم. همچنین از شما مخاطبین عزیز سایت همیارپروژه دعوت می کنم که برای انجام پروژه متلب خود آموزش های ما را دنبال نمایید.
نویسنده: زهرا رستمی
دیدگاهتان را بنویسید