توسعه دهنده نرم افزار اوران ، ورود

آموزش برنامه نویسی (کدنویسی) متلب (MATLAB) – قسمت یازدهم

  • آموزش برنامه نویسی متلب (MATLAB) - قسمت یازدهم
  • نظرات

آموزش کدنویسی در نرم افزار متلب (MATLAB) – ساختارهای کنترلی در متلب – حلقه تکرار “for” – بخش دوم

توجه داشته باشید که با تغییر مقدار متغیر N می توانیم هر تعداد دلخواه این دنباله را محاسبه کنیم. فرض کنیم بخواهیم پس از پایان محاسبات مقدار نهایی دنباله F را در پنجره Command Window مشاهده کنیم. برای این منظور از دستور “disp “استفاده می کنیم. همانطورکه قبلا هم اشاره شد اولا رشته ها همواره را داخل\’ \’ تعریف می کنیم و نیز برای تبدیل داده عددی (number) به یک رشته (string) از دستور num2str استفاده می کنیم. داریم:

for-8

بنابراین آنچه در پنجره Command Window نمایش داده می شود به صورت زیر می باشد

for-9

حال فرض کنیم بخواهیم مقادیر متغیر F را در هر مرحله که محاسبه می شود مشاهده کنیم. برای این کار کافیست که خط دستور disp که قبلا نوشته بودیم را درون حلقه for  قرار دهیم. داریم:

for-10

در این صورت تمامی مقادیر سری فیبوناچی از k=3 به بعد در پنجره Command Window به صورت زیر نمایش داده می شود:

for-11

مجددا به خطی از برنامه که داخل حلقه for متغیر (F(k را تعریف کردیم برگردیم (خط نهم برنامه). همانطور که مشاهده می شود زیر متغیر (F(k خط زرد رنگی وجود دارد که اگر روی متغیر با نشانه گر موس توقف کنیم با اخطار (warning) زیر مواجه می شویم:

for-12

در این پیام هشدار به کاربر اعلام می شود که “متغیر F در هر تکرار حلقه، ابعادش تغییر می کند. برای سرعت بیشتر اجرای برنامه از فضای از پیش تخصیص داده شده (Preallocating) استفاده کنید.” برای درک بهتر این پیام هشدار و نحوه تصحیح آن توجه کنید که زمانی که در خط ششم برنامه تعریف کردیم F(1)=0 ، متغیر F تا این مرحله یک اسکالر 1*1 تعریف می شود. سپس در خط هفتم تعریف کردیم F(2)=1 در این مرحله متغیر F از یک اسکالر به یک بردار 1*2 تغییر ابعاد می دهد. زمانی که وارد حلقه می شویم ابعاد متغیر F در هر تکرار افزایش می یابد تا اینکه ابعاد آن در آخرین تکرار به 1*N یا 1*100 تغییر می باید. این تغییر ابعاد در زبان برنامه نویسی باعث افزایش زمان محاسبات می شود. برای افزایش سرعت برنامه نویسی باید از قبل ابعاد نهایی متغیر F را به متلب معرفی کنیم. برای این کار کافیست متغیر F را  به صورت یک بردار 1*N با المان های صفر تعریف کنیم (با دستور zeros ) که در هر تکرار المان های جدید به جای المان های صفر جایابی می شود به این کار اصطلاحا Preallocating یا از پیش تخصیص دادن فضا می گوییم. با توجه به شکل زیر در خط پنجم برنامه ابعاد متغیر F را تعریف می کنیم. داریم:

for-13

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پنج × 2 =

Next

مقالات مرتبط