PDA

View Full Version : سوال در مورد تابع . کمک :)



god of war
چهارشنبه 30 بهمن 1392, 15:53 عصر
سلام و درود
من مطلب کار نیستم هیچ آشنایی ندارم
میشه یه کمک کنین بگین با چه تابعی میشه یک کارکتر گرفت و کداسکیشو برگردوند
مثلا وقتی enter میزنی کد اسکی enter را بده . یا مثلا کداسکی f3
به نوعی معادل getch() تو C
ممنون میشم کمک کنین . تابعی مثل abs پیدا کردم اما این دیگه نمیشه مثلا enter بش داد !!!!

niloofar_f
چهارشنبه 30 بهمن 1392, 20:15 عصر
سلام و درود
من مطلب کار نیستم هیچ آشنایی ندارم
میشه یه کمک کنین بگین با چه تابعی میشه یک کارکتر گرفت و کداسکیشو برگردوند
مثلا وقتی enter میزنی کد اسکی enter را بده . یا مثلا کداسکی f3
به نوعی معادل getch() تو C
ممنون میشم کمک کنین . تابعی مثل abs پیدا کردم اما این دیگه نمیشه مثلا enter بش داد !!!!

سلام
همونطورکه نوشتید abs این کار رو انجام میده، دستور double هم همینطور هست. تنها روش درمورد enter روش زیر به ذهنم رسید!!!



>> a=char(13)

a =




>> double(a)

god of war
چهارشنبه 30 بهمن 1392, 21:26 عصر
دوست عزیر مرسی از جوابت ولی من کدتو متوجه نشدم
a= ?
a مساوی چی شده ؟ با چه تابعی میگیره کاراکتر ؟

god of war
چهارشنبه 30 بهمن 1392, 21:39 عصر
من میخوام کد رو تو قسمت editor بنویسم و از کاربر یک کارکتر بگیره :(

niloofar_f
چهارشنبه 30 بهمن 1392, 22:18 عصر
دوست عزیر مرسی از جوابت ولی من کدتو متوجه نشدم
a= ?
a مساوی چی شده ؟ با چه تابعی میگیره کاراکتر ؟

a=char(13) یعنی کاراکتر مربوط به کد اسکی 13 که enter هست رو در a ذخیره میکنه!
پس این هم برا مشکل شما درمورد enter مناسب نیست! یه روش که وجود داره اینه که یه تابع GETCHAR تعریف میشه که کاراکتر واردشده توسط کاربر رو توی یه متغیر ذخیره میکنه و میتونیم اسکی اون رو بدست بیاریم ولی تابع مربوط به GETCHAr رو من نتونستم توی متلب پیداکنم.
مثلا ch=GETCHAR فراخوانی میشه و کاراکتر از کاربر خواسته میشه
سپس کد اسکی ch پیدا میشه.

Imaaan
چهارشنبه 30 بهمن 1392, 23:48 عصر
سلام
توی لینک زیر یه فایلی قرار داره، که این کار رو انجام میده:


getkey (http://www.mathworks.com/matlabcentral/fileexchange/7465-getkey)


CH = GETKEY waits for a single keypress and returns the ASCII code. It accepts all ascii characters, including backspace (8), space (32), enter (13), etc, that can be typed on the keyboard. Non-ascii keys (ctrl, alt, ..) return a NaN. CH is a double.

CH = GETKEY(N) waits for N keypresses and returns their ASCII codes. GETKEY(1) is the same as GETKEY without arguments.

GETKEY('non-ascii') or GETKEY(N,'non-ascii') uses non-documented matlab features to return a string describing the key pressed. In this way keys like ctrl, alt, tab etc. can also distinguished. The return is a string (when N = 1) or a cell array of strings.

[CH,T] = GETKEY(...) also returns the time between the start of the function and each keypress. This is, however, not that accurate.

This function is kind of a workaround for getch in C. It uses a modal, but non-visible window, which does show up in the taskbar.

C-language keywords: KBHIT, KEYPRESS, GETKEY, GETCH

god of war
پنج شنبه 01 اسفند 1392, 06:08 صبح
این فایل درست کار میکنه اما وقتی طبق مثال خودش تو فایل که کامنت شدش مینویسی ;ch=getkey کار نمیکنه :(

Imaaan
پنج شنبه 01 اسفند 1392, 07:28 صبح
این فایل درست کار میکنه اما وقتی طبق مثال خودش تو فایل که کامنت شدش مینویسی ;ch=getkey کار نمیکنه :(

کار میکنه، اینم یه نمونه کد برای تست کلید Enter:


keypressed = getkey;
while keypressed ~= 13 % 13 is the equivalent to the "enter" key.
disp('Enter was not pressed. Try again.');
keypressed = getkey;
end
disp('Congratulations! Enter was pressed :) .');

منبع: http://www.mathworks.com/matlabcentral/answers/90940-request-user-to-press-enter-key

god of war
پنج شنبه 01 اسفند 1392, 09:39 صبح
اینو ببین
http://upload.tehran98.com/upme/uploads/thumbs/ab54e6b5ce27372f1.jpg (http://upload.tehran98.com/upme/uploads/ab54e6b5ce27372f1.jpg)

Imaaan
پنج شنبه 01 اسفند 1392, 10:20 صبح
اینو ببین
http://upload.tehran98.com/upme/uploads/thumbs/ab54e6b5ce27372f1.jpg (http://upload.tehran98.com/upme/uploads/ab54e6b5ce27372f1.jpg)


فایل هایی که توی متلب بشه ازشون استفاده کرد، باید داخل مسیر ها (فولدر هایی) باشه، که برای متلب تعریف شده، این مسیرها شامل تمام فولدرهایی هست، که بعد از زدن دستور pathtool، نشون داده میشه. میشه مسیرهای جدید هم بهش اضافه کرد، غیر از این مسیرها، متلب از فایل های داخل مسیر فعلیش (Current Folder) هم میتونه استفاده کنه. الان توی این عکس Current Folder فولدر bin هست. همون بالای نوشته Current Folder، علامت open رو انتخاب کن، مسیرش رو به یه فولدر دیگه مثلا Desktop تغییر بده، فانکشن getkey رو هم داخل همون فولدر قرار بده، الان از getkey میتونی توی متلب استفاده کنی.

برای اینکه فولدر bin هم دیگه Current Folder نباشه:
Start in (http://mathworks.ir/forum/-matlab/1312----?limit=15&start=60#9683)

matcode.ir
پنج شنبه 01 اسفند 1392, 20:39 عصر
دوستان عزیزی که در انجام پروژه های متلب خود دچار مشکل شده اند می توانند برای رفع مشکلات خود به سایت زیر مراجعه کنند:
http://www.matcode.ir

god of war
پنج شنبه 01 اسفند 1392, 21:50 عصر
مرسی Imaaan عزیز :لبخندساده: و matcode