انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ورودی گرفتن بدون نیاز به کلید اینتر (متلب - MATLAB)

ورودی گرفتن بدون نیاز به کلید اینتر (متلب - MATLAB)

#1
سلام دوستان

این امکان وجود داره که که بتونیم به متلب یه ورودی بدیم بدون اینکه نیاز باشه بعدش کلید اینتر رو بزنیم؟؟

مثلا تو ++C از طریق فرمان ()getst این امکان وجود داره.
پاسخ

ورودی گرفتن بدون نیاز به کلید اینتر (متلب - MATLAB)

#2
سلام.
راه حلی به صورت کد متلب (MATLAB) زیر وجود دارد که البته یک پنجره شکل خالی را نمایش می دهد و بعد از اجرای کد، باید یک کلید از کیبورد را فشار دهید (لینک منبع کد) (پس از آن، کد لازم برای فشار دادن بیش از یک کلید را هم ذکر خواهیم کرد).
3 نکته مهم، قبل از استفاده از کد زیر :
1- حتما کیبورد در حالت تایپ ((حروف انگلیسی)) باشد، نه ((حروف فارسی)). اگر کیبورد در حالت تایپ ((حروف فارسی)) باشد، هیچگونه خروجی را مشاهده نخواهید کرد
2- دقت کنید که بعد از اجرا کردن کد، با موس در جایی کلیک نکنید (صرفا کلیدی از کیبورد را فشار دهید)
3- پس از پایان فشار دادن کلید و اتمام اجرای کدها، اگر کلیدی دیگر از کیبورد را فشار دهید، احتمالا کاراکتر مربوط به آن کلید در ادیتور (Editor) شامل کدهای متلب (MATLAB) تایپ می شود. بنابراین مراقب باشید که ناخواسته در بین کدهای متلب (MATLAB) خود، کاراکتری را تایپ نکنید (مراقب باشید که چه زمانی اجرای کدها به پایان رسیده است و یا اصلا می توانید یک کد نمایش پیام پایانی را به انتهای کدها اضافه نمایید، مخصوصا برای کدهایی که در ادامه، برای فشار دادن بیش از یک کلید، ذکر خواهیم کرد)

کد متلب (MATLAB) (تنها برای فشار دادن یک کلید) :

کد پی‌اچ‌پی:
clear all
close all
clc

waitforbuttonpress;
if 
w
    p 
get(gcf'CurrentCharacter');
 
   disp(p) % displays the character that was pressed
    disp
(double(p))  displays the ascii value of the character that was pressed    
end

close all 

در منبع کدها (که لینک آن را ذکر کردیم)، دستور close all در انتهای کدها وجود نداشت، ولی بنده آن را اضافه کرده ام تا به محض پایان زدن کلید مورد نظرمان، پنجره شکل خالی، بسته شود.
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.

با اجرای کد متلب (MATLAB) بالا، کاراکتر مربوط به کلید فشار داده شده و همچنین کد ascii مربوط به آن، دز خروجی متلب (MATLAB) نمایش داده می شود. مثلا با زدن کلید k از کیبورد، خروجی متلب (MATLAB) به صورت زیر خواهد بود :

کد پی‌اچ‌پی:
k
   107 


اما کد متلب (MATLAB) مورد نظر، تنها برای زدن یک کلید از کیبورد می باشد، بنابراین اگر تعداد کلیدی که باید زده شود را بدانیم (و بیش از یک کلید باشد)، می توانیم از حلقه for استفاده نماییم (کلید شماره 30). به عنوان مثال، برای قابلیت زدن 14 کلید، کد متلب (MATLAB) زیر را می نویسیم (می خواهیم عبارت kelidestan.com را وارد کنیم که دارای 14 کاراکتر است) :

کد پی‌اچ‌پی:
clear all
close all
clc

for 1:14
    w 
waitforbuttonpress;
 
   if w
        p 
get(gcf'CurrentCharacter');
 
       disp(p) % displays the character that was pressed
        disp
(double(p))  displays the ascii value of the character that was pressed    
    end
end

close all 

دقت کنید که تعداد 14 کلید (کاراکتر) را به عنوان تعداد گام حلقه for مشخص کرده ایم.
پس از اجرای کد متلب (MATLAB) بالا، عبارت kelidestan.com را تایپ می کنیم و خروجی متلب (MATLAB) به صورت زیر خواهد بود :

کد پی‌اچ‌پی:
k
   107

e
   101

l
   108

i
   105

d
   100

e
   101

s
   115

t
   116

a
    97

n
   110

.
 
   46

c
    99

o
   111

m
   109 

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط Ali_Sh ، شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان