دریافت ورودی از کاربر، از طریق یک پنجره گرافیکی، با دستور inputdlg ، در متلب (MATLAB)
در مبحثی دیگر ( کلید شماره 88 )، دستور input را معرفی کردیم که برای دریافت ورودی از کاربر از طریق پنجره commands در نرم افزار متلب (MATLAB) به کار می رود. اما پنجره commands ، بخشی از پنجره اصلی نرم افزار متلب (MATLAB) است و بنابراین چنانچه بخواهیم که ورودی را در یک پنجره گرافیکی جدید از کاربر دریافت کنیم، دستور input مفید نخواهد بود و باید دستور inputdlg در متلب (MATLAB) را به کار ببریم.
دستور inputdlg ، یک پنجره گرافیکی را باز می کند که کاربر باید در کادر درون آن کلیک کرده و از طریق کیبورد، مقادیر مورد نظرش را وارد کند و در آخر نیز بر روی دکمه OK کلیک نماید. آنگاه مقدار وارد شده توسط برنامه دریافت می شود و ادامه برنامه اجرا خواهد شد (در زمان دریافت مقدار از کاربر، برنامه در حالت توقف خواهد بود).
مقادیری که توسط دستور inputdlg دریافت می شوند، به صورت سلول (cell) ذخیره خواهند شد، بنابراین به عنوان مثال اگر می خواهید عددی دریافت شده و در عملیات های ریاضی آن را به کار ببرید و یا موارد دلخواه دیگر، آنگاه باید از توابع تبدیلی مثل cell2mat یا str2double یا str2num یا ... استفاده نمایید (بستگی به نوع اطلاعات مورد استفاده شما دارد).
به مثال زیر توجه کنید :
close all
clc
prompt = {'Please enter a number:'};
A = inputdlg(prompt)
B = str2double(A)
C = 2*B
با دستور inputdlg ، یک مقدار عددی را از کاربر دریافت کرده و سپس آن را به نوع double تبدیل می کنیم تا بتوان از آن به عنوان عدد در عملیات های ریاضی استفاده نمود. در آخر آن را در عدد 2 ضرب می کنیم.
نتیجه :
با اجرای برنامه متلب (MATLAB) بالا، یک پنجره گرافیکی باز می شود :
عدد 6 را در کادر موجود در پنجره تایپ می کنیم و سپس بر روی دکمه OK کلیک می نماییم. بنابراین برنامه متلب، عدد 6 را دریافت می کند و ادامه کدهای خود را اجرا خواهد کرد.
خروجی برنامه متلب به صورت زیر می باشد :
'6'
B =
6
C =
12