بازدید: ٢۶٧

تعامل کاربر(Use Interaction) با اسکریپت (آموزش MATLAB)

بازگشت به صفحه اصلی آموزش MATLAB

 

در حین نوشتن برنامه باید عنوان نمودار را از طریق پنجره Command وارد کنید و نمی توانید هیچ قابلیت دیگری را بدون تغییر خود اسکریپت تغییر دهید. حال فرض کنید می خواهید نمودارهایی را ایجاد کنید که قدری دینامیک(Dynamic) هستند. و یا ممکن است بخواهید نمودارهایی با طولهای مختلف و با سالهای شروع مختلف ایجاد کنید. اگر بتوانید این اطلاعات را از طریق خود اسکریپت وارد کنید، بسیار راحت تر و مناسب تر خواهد بود. به عبارتی دیگر کاری کنید که برنامه برای دریافت تک تک اطلاعات از شما سوال کند. در زیر ما سه خط را به ابتدای اسکریپت اضافه کردیم که از شما برای دریافت اطلاعات سوال می کند.

 

اسکریپت تعاملی

 

بعد از اجرای اسکریپت فوق، برنامه ابتدا برای دریافت تعداد مشاهدات (مقادیر) موجود از شما متوقف می شود و تا شما یک مقدار عددی را وارد نکرده و کلید ENTER را فشار ندهید، به اجرای خود ادامه نمی دهد. بعد از وارد کردن یک مقدار عددی، متغیر nofobs به آن مقدار تخصیص داده می شود. سپس شبیه به این مراحل برای دریافت سال شروع و نوشتن یک عنوان از شما سوال می شود. توجه داشته باشید که عنوان را باید بصورت یک مقدار رشته ای وارد کنید به عبارتی دیگر باید در بین یک جفت تک کتیشن قرار دهید. با این روندی که اطلاعات را از کاربر گرفتیم، باید نحوه ایجاد متغیرهای obs و Dates را نیز تغییر دهیم.

تعداد مشاهدات به راحتی با تغییر خط obs =cumprod(1+ randn(600,1)/100) به obs =cumprod(1+ randn(nofobs,1)/100) تغییر می کنند. اگرچه برای متغیر Dates، باید مقداری را که با آن ماتریس تمام می شود را نیز محاسبه کنید. قبلا اینکار را بصورت دستی انجام می دادیم. محاسبه مقدار شروع آسان است: startyear+1/24. مقدار نمو آن که با هر مشاهده اضافه می شود 1/12 می باشد. بنابراین آخرین مقدار satartyear +1/24+1/12*(nofobs-1) می شود.

بعنوان یک قابلیت جدید، می خواهیم اینبار یک خروجی را به برنامه اضافه کنیم به عبارتی دیگر سال شروع، سال خاتمه و تعداد مشاهدات (مقادیر) را مشخص کنیم. یک راه برای انجام اینکار این است که کاراکتر سمی کالن را از آخر خطوطی که متغیرها تعریف می شوند، حذف کنیم. در این حالت خروجی نمایش داده شده چندان زیبا و شکیل به نظر نمی رسد. اگر از دستور disp() برای نمایش داده ها استفاده کنیم، بهتر است. یکی از مشکلاتی که در اینجا وجود دارد این است که باید داده های کاراکتری را با داده های عددی ترکیب کنیم. برای رفع این مشکل ابتدا باید داده های عددی با استفاده از تابع num2str() به داده های کاراکتری تبدیل شوند. بنابراین اطلاعاتی را که میخواهیم در هر مرحله نمایش دهیم، از الحاق دو ماتریس بدست می آیند که عبارتند از یک رشته کاراکتری و یک متغیر عددی تبدیل شده. حتما باید هردو قسمت را در درون یک جفت کروشه قرار دهیم.

اسکریپت اصلاح شده باید شبیه به اسکریپت زیر به نظر برسد که در آن متغیر dates طی دو مرحله ایجاد می شود:

 

interaction script

 

اسکریپت فوق را ذخیره کنید و چندین بار آن را با داده های مختلف اجرا کنید تا ببینید که به درستی کار می کند یا خیر. 

 

بازگشت به صفحه اصلی آموزش MATLAB

طراحی سایت و سئو توسط ضابط