متوقف شدن موقتی اجرای برنامه، تا زمان زدن یک کلید از کیبورد یا کلید موس توسط کاربر (در هنگام فعال بودن پنجره شکل فعلی (figure window))، با دستور waitforbuttonpress ، در متلب (MATLAB)
هنگامی که دستور waitforbuttonpress در متلب (MATLAB) را به کار می بریم، اجرای ادامه کدهای برنامه، متوقف می شود و سپس اگر قبلا یک پنجره شکل (figure window) نمایش داده شده (در حالت فعال)، پنجره شکل جدیدی نمایش داده نمی شود، اما اگر هیچ پنجره شکلی (figure window) وجود نداشته باشد، نرم افزار متلب (MATLAB) یک پنجره شکل (figure window) خالی را نمایش می دهد. بنابراین به هر حال، بعد از اجرای دستور waitforbuttonpress ، ما یک پنجره شکل (figure window) که در حالت فعال می باشد را خواهیم داشت. اکنون اگر قصد داریم که ادامه کدهای برنامه اجرا شوند، باید در آن پنجره شکل (figure window) فعال، با موس کلیک کنیم و یا اینکه یکی از کلیدهای کیبورد را فشار دهیم.
پنجره شکل (figure window)، باید فعال باشد تا زدن دکمه ای از کیبورد، باعث ادامه اجرای کدهای برنامه شود. منظور از فعال بودن، این است که بر روی نرم افزار دیگری در ویندوز کلیک نکرده ایم و پنجره شکل بر روی سایر نرم افزارها در ویندوز قرار گرفته است.
همچنین اگر می خواهیم با موس کلیک کنیم، باید کلیک موس در درون پنجره شکل (figure window) باشد.
کلیدهایی از کیبورد، به درستی عمل می کنند که برای تولید کاراکتر (character) به کار می روند (مثلا کلید های W و H و K و ...). به عنوان مثال، کلیدهای زیر، عمل نخواهند کرد :
Ctrl و Shift و Alt و Caps_lock و Num_lock و Scroll_lock
فرض کنید که دستور waitforbuttonpress را به صورت زیر بنویسیم :
اگر کاربر، یک کلید از کیبورد را بزند، مقدار 1 در متغیر A ذخیره می گردد، اما اگر کلید موس را بزند، مقدار 0 در متغیر A ذخیره خواهد شد. بنابراین امکان تشخیص این دو حالت نیز وجود دارد.
به مثال زیر توجه کنید :
سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
نتیجه :
با توجه به اینکه قبلا هیچ پنجره شکلی (figure window) نمایش داده نشده، نرم افزار متلب (MATLAB)، یک پنجره شکل (figure window) خالی را نمایش می دهد و صبر می کند تا کاربر واکنش نشان دهد (اجرای برنامه به صورت موقتی، متوقف می شود) :
در این زمان، خروجی به صورت زیر می باشد :
اکنون به عنوان مثال، کلید K از کیبورد را می زنیم (یا می توانیم با موس در بخشی از درون پنجره شکل (figure window)، کلیک نماییم). بنابراین ادامه کدهای برنامه، اجرا می گردد.
خروجی نهایی به صورت زیر خواهد بود :
مثالی از help نرم افزار متلب (MATLAB)، که برای تشخیص این مورد است که کاربر، کلیدی از کیبورد را فشار داده و یا اینکه کلید موس را زده است :
نتیجه :
پنجره شکل (figure window) زیر نمایش داده می شود (اجرای برنامه، متوقف خواهد شد) :
به عنوان مثال، کلید موس را می زنیم (با کلیک موس در پنجره شکل). بنابراین ادامه کدهای برنامه، اجرا شده و خروجی زیر نمایش داده می شود :
hکنون مثالی را ذکر می کنیم که بر اساس کدهای اصلی آن، یک پنجره شکل (figure window) نمایش داده می شود و بنابراین نیازی نیست که نرم افزار متلب (MATLAB)، یک پنجره شکل (figure window) خالی را نمایش بدهد :
با استفاده از دستور plot ، یک شکل ساده را رسم می کنیم، بنابراین در زمان اجرای دستور waitforbuttonpress ، یک پنجره شکل (figure window) نمایش داده شده و نیازی به نمایش پنجره شکل (figure window) خالی نمی باشد.
نتیجه :
یک پنجره شکل (figure window) باز شده و شکل زیر نمایش داده می شود :
در این زمان، اجرای ادامه کدهای برنامه متوقف شده است و نرم افزار متلب (MATLAB) منتظر واکنش کاربر می باشد. خروجی نیز به صورت زیر می باشد :
به عنوان مثال، کلید B از کیبورد را می زنیم (یا در صورت تمایل، شما می توانید با دکمه موس، در پنجره شکل مورد نظر، کلیک نمایید). بنابراین ادامه کدهای برنامه، اجرا شده و خروجی نهایی به صورت زیر می باشد :
سلام چه جوری میشه ی اهنگ در حال پخش را متوقف کرد در متلب مثلا بعد از 5 ثانیه قطع بشه
یت اینکه از ثانیه ی 5تا 15 فقط خوانده بشه