دستور input در متلب
در این پست از آموزش متلب رایگان، میخواهیم نحوه دریافت ورودی از کاربر در متلب را بررسی کنیم. یکی از راههای دریافت ورودی از کاربر، دستور input در متلب است. دستورهای دیگری نیز برای دریافت ورودی در متلب وجود دارند. اما تمرکز ما در این پست تنها روی دستور input است. دستور input با دو مثال عملی و خوب تشریح شده است. با هوسم همراه باشید…
دریافت ورودی از متلب
در بسیاری از زبانهای برنامهنویسی، دستورهایی وجود دارند که از کاربر ورودی میگیرند. در نرم افزار متلب نیز چنین امکاناتی وجود دارد. یعنی در متلب هم دستورهایی وجود دارند که میتوانیم اعداد دلخواهِ کاربر را واردِ کد کنیم.
مثلا فرض کنید که یک کد در متلب نوشتهاید که کار یک ماشین حساب را انجام میدهد. حالا این ماشین حساب را به خواهرتان دادید که هیچ چیزی از کدنویسی نمیداند. او میخواهد از این ماشین حساب استفاده کند. احتمالا عوض کردن متغیرها برایش گیج کننده خواهد بود درست است؟ پس بهتر است یک پیغام برای او نمایش داده شده و از او بخواهد اعداد را وارد کند!
عمل دریافت ورودی در متلب با استفاده از دستور input در متلب انجام خواهد شد. این دستور دو نوع داده عددی و رشته را دریافت میکند. برویم که با این دستور آشنا شویم…
دستور input در متلب
یکی از راههای دریافت ورودی از کاربر در متلب، دستور input در متلب است. استفاده از این دستور بسیار ساده است. در help متلب این دستور را جستجو کرده و داکیومنت آن را باز کنید. در این داکیومنت مشاهده میکنید که نحوه استفاده از دستور input در متلب به شکل زیر است:
x = input(prompt) str = input(prompt,'s')
در خط اول یک متغیر به نام x تعریف شده است. در واقع عددی که کاربر وارد خواهد کرد، در این متغیر ذخیره خواهد شد. ورودی با استفاده از دستور input در متلب دریافت شده است. اما این دستور یک ورودی به نام prompt گرفته است. prompt چیست؟
prompt در متلب
prompt پیغامی است که با اجرای دستور input در متلب، به کاربر نشان داده میشود. در این پیغام باید مشخص کنیم که از کاربر چه میخواهیم. مثلا میگوییم که یک عدد بین صفر تا ده وارد کن. خلاصه در این پیغام هرچه دل تنگتان بخواهد به کاربر میتوانید بگویید😉.
خط دوم اما نحوه دریافت یک رشته از کاربر را نشان میدهد. دریافت رشته با دستور input در متلب یک کوچولو متفاوت است. فقط باید بعد از اینکه پیغام prompt را وارد کردیم، یک کاما گذاشته و عبارت ‘s’ را نیز وارد کنیم. این عبارت به input میگوید که ورودی که کاربر وارد میکند، رشته یا string است. در این صورت کاربر هرچه وارد کند، متلب آن را به صورت رشته میبیند!
اما یاد گرفتن یک دستور خشک و خالی که نمیشود. بیایید یک کد ساده بزنیم. در بخش بعدی میخواهیم با دستور input در متلب، یک ضرب کننده بسازیم. برویم سراغ بخش بعدی…
ساختن یک ضرب کننده ساده با دستور input در متلب
میخواهیم ضرب کنندهای بسازیم که دو عدد را از کاربر بگیرد و آنها را در هم ضرب کرده و نتیجه را نمایش دهد. برای این کار باید دو بار از دستور input استفاده کنیم. با این کار دو عدد دریافت خواهیم کرد. سپس این دو عدد را در هم ضرب کرده و نتیجه را نمایش میدهیم. برای این کار یک m-file بسازید و کد زیر را در آن بنویسید:
clear clc a = input('Enter first number: '); b = input('Enter second number: '); result = a * b; disp(['result: ', num2str(result)])
- خط 1 و 2 که واضح است. متغیرها را پاک کرده و Command Window را هم پاکسازی کردیم.
- خط 4: عدد اول را از کاربر گرفتیم و در متغیر a ذخیره کردیم.
- خط 5: عدد دوم را نیز از کاربر گرفتیم و در متغیر b ذخیره کردیم.
- خط 6: نتیجه ضرب دو عدد را در متغیر result ذخیره میکنیم.
- خط 8: نتیجه را نمایش میدهیم.
مثلا اگر بخواهیم عدد 5 و 9 را در هم ضرب کنیم نتیجه به شکل زیر خواهد بود:
Enter first number: 5 Enter second number: 9 result: 45
دریافت رشته از کاربر با دستور input
گفتیم برای دریافت رشته از کاربر کافی است به input یک ورودی دیگر به شکل ‘s’ بدهیم. با این کار کاربر هرچه وارد کنید تبدیل به رشته میشود. مثلا اگر کاربر عدد 2 را وارد کند، خروجی input، به شکل ‘2’ خواهد بود.
>> input('Enter a number: ', 's') Enter a number: 2
ans = '2'
برویم یک مثال عملی ببینیم…
ساختن یک ضرب/تقسیم کننده ساده با دستور input در متلب
در این بخش کمی مسئله را پیچیده کردیم. میخواهیم یک ضرب کننده و تقسیم کننده بسازیم. این کاربر است که تعیین میکند که دو عددی که وارد کرده است با هم ضرب شوند یا تقسیم. برای این کار کد زیر را میتوان نوشت:
clear clc a = input('Enter first number: '); b = input('Enter second number: '); c = input('Enter the operation: (* for multiplying and / for deviding) ', 's'); if c == '*' result = a * b; elseif c == '/' result = a / b; else result = 'This is not a valid operation!!'; end disp(['result: ', num2str(result)])
- خط 1 و 2: اینها که ساده هستند!
- خط 4 و 5: این دو خط را هم که قبلا دیدیم.
- خط 6: در این خط یک رشته از کاربر میگیریم. این رشته درواقع یک علامت هست. یعنی از کاربر میخواهیم که بگوید ضرب میخواهد یا تقسیم!
- خط 7 و 8: اگر علامتی که کاربر وارد کرده است ضرب باشد، دو عدد در هم ضرب میشوند. نتیجه در متغیر result ذخیره میشود.
- خط 9 و 10: اگر علامتی که کاربر وارد کرده است تقسیم باشد، دو عدد بر هم تقسیم میشوند. نتیجه در متغیر result ذخیره میشود.
- خط 11 و 12: اگر علامتی که کاربر وارد کرده ضرب یا تقسیم نباشد، پیامی در result ذخیره میشود. این پیام به کاربر میگوید، علامتی که وارد کردی معتبر نبوده و غیر از ضرب و تقسیم است.
- در خط 15: نتیجه نمایش داده شده است.
حالا میخواهیم کد جدیدمان را تست کنیم. مثلا اگر بخواهیم عدد 6 را بر 3 تقسیم کنیم:
Enter first number: 6 Enter second number: 3 Enter the operation: (* for multiplying and / for deviding) / result: 2
یا مثلا عدد 4 را در 9 ضرب کنیم:
Enter first number: 4 Enter second number: 9 Enter the operation: (* for multiplying and / for deviding) * result: 36
حالا مثلا اگر علامت را + وارد کنیم چه میشود؟ ببینیم:
Enter first number: 4 Enter second number: 9 Enter the operation: (* for multiplying and / for deviding) + result: This is not a valid operation!!
مشاهده میکنید که کدی که نوشتیم دو عمل ضرب و تقسیم را انجام میدهد. به همین ترتیب میتوانیم ادامه داده و یک ماشین حساب ساده بسازیم.
clear clc a = input('Enter first number: '); b = input('Enter second number: '); c = input('Enter the operation: ', 's'); if c == '*' result = a * b; elseif c == '/' result = a / b; elseif c == '+' result = a + b; elseif c == '-' result = a - b; else result = 'This is not a valid operation!!'; end disp(['result: ', num2str(result)])
دریافت PDF جلسه دستور input در متلب
برای دریافت pdf این جلسه، لطفا ایمیل خود را در باکس زیر وارد کرده و روی دکمه «دریافت pdf» کلیک کنید.
جمعبندی پست دستور input در متلب
در این پست با دستور input در متلب آشنا شدیم. دو مثال عملی را با هم بررسی کردیم. سعی کنید تمرین را خودتان انجام دهید. در صورتی که سوالی دارید در کامنتها بپرسید. به سوالات در اسرع وقت پاسخ داده خواهد شد.
مطالب زیر را حتما مطالعه کنید
تعریف متغیر در متلب
آموزش متلب رایگان
دستور max در متلب
دستور محاسبه انتگرال در متلب
دستور ezplot در متلب
حل دستگاه معادلات در متلب
10 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
چطور میشه بدون زدن اینترتوسط کاربر از کاربر ورودی دریافت کنیم یا به عبارتی ورودی کاربر را بصورت لحظه ای چک کنیم تا اینکه مقدار مورد نظر ما را وارد کند
سلام. یه راهنمایی مس کنید در مورد استفاده از num2str(result) برای چاپ مقدار Result .
این تابع از کجا اومد؟
سلام
شما با استفاده از دستور num2str میتونید یک عدد رو به استرینگ تبدیل کنید. یعنی، مثلا عدد 3 رو به ‘3’ تبدیل کنید.
کاربردش کجاست؟ زمانی که خواستید یک عبارتی رو پرینت کنید که این عبارت ترکیبی از استرینگ و عدد بود. توی این حالت از براکت استفاده کنید. فرض کنید، بخواییم بنویسیم: results: yp که yp هم یک عدد هست. مینویسیم:
[results: ‘, num2str(yp)’]
سلام
خداقوت میگم به نویسنده(نویسندگان) این آموزش بسیار مفید.
چون خودم محتوا تولید کرده ام، می دانم که برای تهیه و تنظیم مطالب هر کدام از این جلسات، چقدر زحمت کشیده شده است.
امیدوارم همیشه پرتوان و با انگیزه و سلامت باشید.
خداوند بزرگ نگهدارتان
سلام حمید عزیز،
ممنون از پیام پرمهرتون 😊🌹
سلام راستش من میخوام دو عنصر از ماتریس رو باهم جابه جا کنم میتونید کمکم کنید دستورشو بلد نیستم
سلام
لطفا جلسه هفتم اندیس گذاری در متلب رو مطالعه کنید.
سلام
برنامه ای بنویسم که،ماتریسی دو ستونی را که مقادیر ستون اول آن نمرات دروس مختلف یک ترم یک دانشجو و مقادیر ستون دوم آن تعداد واحد مربوط هر یک از آن دروس می باشد را از کاربر بگیر و عملیات زیر را بر روی انجام بده
محاسبه تعداد واحد ها
محاسبه معدل ترم
نمایش نتایج با پیغام مناسب اینا رو هم انجام بده باید چه کد و دستوری بزنم؟
سلام عین همین کد آخرین تمرین در این بخش رو در m-file وارد کردم ولی زمانی که اجرا می کنم این خطا رو می دهد.
Error in morteza11 (line 3)
a = input(‘Enter first number: ‘);
راه حل اش رو بفرمایید ممنون می شم.
سلام مرتضی عزیز،
کد آخرین تمرین بدون خطا اجرا میشه. شاید مشکل از علامت کوتیشن (‘) باشه. هرجا این علامت هست پاک کنید و دوباره بنویسید.