دومین نوع از M-fileها function fileها میباشند. تابع M-file جهت انتظارات و عملکردهای فراوانی مورداستفاده قرار میگیرد. تابع M-file کاربر را قادر میسازد تا خود، کتابخانههای محاسباتی موجود در MATLAB را توسعه دهد. اسکریپت و تابع M-file میتوانند شامل دستورات جعبهابزار MATLAB نیز باشند.
سرویس آموزش و آزمون برق نیوز: دومین نوع از M-fileها function fileها میباشند. تابع M-file جهت انتظارات و عملکردهای فراوانی مورداستفاده قرار میگیرد. تابع M-file کاربر را قادر میسازد تا خود، کتابخانههای محاسباتی موجود در MATLAB را توسعه دهد. اسکریپت و تابع M-file میتوانند شامل دستورات جعبهابزار MATLAB نیز باشند.
قبل از آنکه یک فایل متنی بتواند اجرا شود باید ذخیره شود. همهی فایلهای متنی باید با پسوند ".m" ذخیره شوند. زمانی میتوانیم از ویرایشگر MATLAB جهت ویرایش M-fileها استفاده نماییم که حتماً با پسوند ".m" ذخیرهشده باشند، در غیر این صورت MATLAB قادر به یافتن و اجرا کردن Script Files نخواهد بود. جهت ذخیره کردن با پسوند ".m" فقط کافی است از منوی file گزینهی save as را انتخاب و پس از انتخاب مکان و نام مناسب بر روی گزینهی save کلیک کنیم. فرم کلی یک تابع در MATLAB بهصورت زیر است:
function [out۱, out۲, ...]= funname (in۱,in۲, ...)
همانگونه که در فرم کلی یک تابع مشخص است، بسته به عملکرد آن میتواند شامل یک سری ورودی و یا خروجی باشد. البته تابع میتواند شامل آرگومانهای ورودی و یا خروجی تحت شرایطی نباشد. funname که نام تابع و دلخواه است از قواعد نامگذاری متغیرها تبعیت میکند و بایستی توابع را بهصورت یک M-file نوشته و با نامی دقیقاً مشابه funname ذخیره نمود. out۱,out۲,… آرگومانهای خروجی تابع موردنظر و in۱,in۲,… آرگومانهای ورودی میباشند. توابع MATLAB میتوانند به تعداد دلخواه آرگومانهای ورودی و خروجی داشته باشند. در زیر خصوصیات و معیارهای مربوط به این آرگومانها نوشتهشده است:
۱-تابع M-file میتواند آرگومانهای ورودی و خروجی صفر داشته باشد.
۲-توابع میتوانند توسط آرگومانهای خروجی یا ورودی کمتری نسبت به تعدادی که در خط تعریف تابع M-file مشخصشده، فراخوانی شوند ولی نمیتوانند با آرگومانهای بیشتری نسبت به آرگومانهای ورودی یا خروجی که M-file را مشخص میکنند، فراخوانی شوند.
تاکنون با توابع آمادهی زیادی آشنایی پیداکردهاید. در توابع آماده مانند abs,angle,sqrt,… شما ساختار هر یک را هنگام اجرا مشاهده نمیکنید. آنچه مشاهده میشود، فقط دادههایی هستند که بهعنوان ورودی ارسالشده و سپس از آن بهعنوان خروجی دریافت میگردد. تابع M-file شباهت زیادی به اسکریپت M-file دارد. همانطور که میدانید اسکریپت M-file یک فایل متنی با پسوند (m) است. تابع M-file با فایل اسکریپت M-file تفاوت دارد. قبل از هر توضیحی به کمک هم یک تابع میسازیم به مثال زیر توجه کنید:
مثال: تابعی با نام (tm (n بنویسید که ماتریسی با n. سطر و n. ستون تولید کند که عناصر روی قطر اصلی آن ۱,۲,۳,۴,… بوده و مابقی عناصر صفر باشند.
•ابتدا در خط اول کلمهی function و سپس نام تابع را با یکفاصله از کلمه function بنویسید. در این مثال، نام تابع، tm است.
•بعد از انتخاب نام تابع، نوبت به تعیین آرگومانهای ورودی تابع میرسد. در اینجا با توجه به مثال یک آرگومان ورودی (n) بیشتر نداریم (توجه: ساختار برنامه را برحسب آرگومانهای ورودی، مینویسیم).
حل:
function tm (n)
for i=۱:n
for j=۱:n
if i==j
A. (i,j) =i;
else
A. (i,j) =۰;
end
end
end
A. end
تابع را با کلمه end به پایان میبریم (با دستورات برنامهنویسی در ادامه آشنا میشوید). حال همانند سایر اسکریپت M-file ها، سعی کنید با زدن کلید f۵ برنامه را اجرا کنید:
Input argument "n" is undefined
در اینجا شما یکی از تفاوتهای اصلی تابع M-file را با اسکریپت M-file مشاهده نمودید؛ یعنی نمیتوان توابع را بهصورت معمولی اجرا نمود. سؤالی که اینجا مطرح میشود این است که چگونه یک تابع را اجرا کنیم؟ پاسخ به این سؤال ساده است. همانطور که توابع از پیش تعین شدهی MATLAB مانند sqrt را اجرا میکنیم. تابع خود را نیز اجرا میکنیم. به پنجرهی Command رفته و تابع خود را مانند توابع MATLAB اجرا میکنیم.
tm (۵)
A. =
۱، ۰، ۰، ۰، ۰،
۰، ۲، ۰، ۰، ۰،
۰، ۰، ۳، ۰، ۰،
۰، ۰، ۰، ۴، ۰،
۰، ۰، ۰، ۰، ۵
لینک کوتاه
از ارسال دیدگاه های نا مرتبط با متن خبر، تکرار نظر دیگران، توهین به سایر کاربران و ارسال متن های طولانی خودداری نمایید.
لطفا نظرات بدون بی احترامی، افترا و توهین به مسئولان، اقلیت ها، قومیت ها و ... باشد و به طور کلی مغایرتی با اصول اخلاقی و قوانین کشور نداشته باشد.
در غیر این صورت، «برق نیوز» مطلب مورد نظر را رد یا بنا به تشخیص خود با ممیزی منتشر خواهد کرد.