پاورپوینت کلاس آموزشی متلب فصل هفتم ایجاد توابع در متلب Functions (pptx) 11 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 11 اسلاید
قسمتی از متن PowerPoint (.pptx) :
فصل هفتم:
ایجاد توابع در متلب
Functions
7-1-مزاياي استفاده از توابع به جاي فايلهاي اسکريپت
سرعت بالاتر
صرفهجويي در حافظه کامپيوتر
توسعه تواناييهاي متلب
توابع بر خلاف فايلهاي اسکريپت در هنگام اجرا يکبار کامپايل شده و اجرا ميشوند. در حاليکه فايلهاي اسکريپت سطر به سطر کامپايل و اجرا ميگردند. اين امر باعث افزايش سرعت اجراي توابع در مقايسه با فايلهاي اسکريپت ميشود.
متغيرهاي تعريف شده در توابع پس از پايان اجراي آن از حافظه پاک ميشوند و بطور کلي فضاي کاري توابع مستقل از فضاي کاري متلب است. خصوصا در مواقعي که برنامه با ماتريسهاي بزرگ(مانند تصاوير) کار ميکند بهتر است از توابع استفاده شود
7-1-مزاياي استفاده از توابع به جاي فايلهاي اسکريپت-ادامه-
اکثر دستورات اصلي متلب و جعبهابزارهاي آن با استفاده از توابع نوشته شده است. به بيان ديگر به راحتي ميتوان قابليتهايي که در حال حاضر در متلب وجود ندارد را با نوشتن يک مجموعه از توابع به آن افزود. همين امر باعث شده است که در دهه گذشته قابليتهاي متلب در رشتههاي مختلف علمي و فني با سرعت چشمگيري توسعه يابد.
نکته : بهتر است در هنگام نوشتن يک برنامه آنرا بصورت اسکريپت بنويسيم تا اشکالزدايي آن آسانتر باشد اما پس از کامل شده برنامه آنرا به فانکشن تبديل کنيم تا سرعت و کيفيت آن افزايش يابد.
7-2- تفاوتهاي توابع و فايلهاي متني
فايلهاي متني سطر به سطر ترجمه و اجرا ميشوند اما توابع يکبار بطور کامل ترجمه و سپس اجرا ميگردند.
محيط کاري فايلهاي متني همان محيط کاري متلب است اما محيط کاري هر تابعي مختص خود اوست يعني اگر متغيري در يک تابع تعريف شود تنها در آن تابع قابل دسترسي است و برعکس متغيرهاي تعريف شده در محيط کاري متلب در داخل توابع تعريف شده نيستند.( مگر اينکه بصورت عمومي تعريف شده باشند)
توابع تنها از طريق آرگومانهايشان با محيط خارج در ارتباطند
7-3- نحوه ايجاد توابع
تنها تفاوت ظاهري يک تابع و يک فايل متني آن است که سطر اول يک تابع با کلمه کليدي function شروع ميشود که شکل کلي آن بصورت زير است:
function [argout1 , argout2, … ] = funcname(argin1,argin2,…)
%معرفي فانکشن در يک سطر
%راهنماي استفاده
% از اين فانکشن
% نويسنده فانکشن ، نسخه و سال ساخت
بدنه تابع
...
7-3- نحوه ايجاد توابع-ادامه-
نکات:
تابع ممکن است هيچ آرگومان ورودي يا خروجي نداشته باشد.
اولين سطر بعد از اعلان تابع، يک جمله توضيحي است که در هنگام استفاده از دستور lookfor در متلب مورد جستجو قرار ميگيرد
تمامي سطرهاي توضيحي تا نخستين سطر غير توضيحي در هنگام استفاده از دستور help نمايش داده ميشود.
نکته :بهتر است هنگام نوشتن يک تابع حتما يکي دو سطر در مورد نحوه استفاده از آن و عملکرد آن توضيح داده شود تا کاربر بتواند با استفاده از دستور help متلب با روش استفاده از آن تابع و قابليتهاي آن آشنا شود.
7-4- فرمانهاي return و error
با استفاده از اين دو دستور ميتوان اجراي يک تابع را پيش از رسيدن به انتهاي آن متوقف کرد. تفاوت دستور error با دستور return آن است که دستور error مي تواند يک پيغام خطا نيز بمنظور آگاهسازي کاربر نمايش دهد.
مثال:
s= input( ‘Please enter a scalar value= ‘);
if length (s) > 1
error(‘Error! Your input isn’’t a scalar!’);
end
a= linspace( 0 , abs(s) , 100);
7-5- تعيين تعداد آرگومانهاي بکار رفته در حين اجرا
در متلب ميتوان توابع را با تعداد آرگومان کمتر از تعداد آرگومان موجود در تعريف تابع نيز فراخواني کرد. مثلا تابع size در متلب با دو آرگومان نوشته شده است اما با يک آرگومان نيز قابل اجراست که البته مقدار بازگشتي به تعداد آرگومانهاي مورد استفاده بستگي خواهد داشت.
در صورتيکه بخواهيم از تعداد آرگومانها در حين اجرا مطلع شويم بايد از توابع nargin و nargout به ترتيب براي تعداد آرگومانهاي ورودي و تعداد آرگومانهاي خروجي استفاده کنيم.
همچنین توابع nargchk و nargoutchk تعداد آرگومانهای ورودی و خروجی را چک میکنند و درصورتیکه با تعداد درخواست شده برابر نباشند پیام خطای مناسب را نشان میدهند.
7-6- نکاتي در مورد توابع
در يک فايل ميتوان بيش از يک تابع تعريف کرد. در اينصورت تمامي اين توابع ميتوانند يکديگر را فراخواني کنند اما تنها نخستين تابع از خارج از اين فايل قابل فراخواني است.
نام فايل با نام نخستين تابع آن بايد يکسان باشد. در غير اينصورت بمنظور اجراي تابع بايد از نام فايل به جاي نام تابع استفاده گردد که البته کار درستي نيست.