آموزش Matlab قسمت پنجم

1395/1/12 --- 4007

با عرض سلام ،با جلسه پنجم برنامه نویسی MATLABدر خدمت شما هستم.

در ابتدا قصد دارم در رابطه با تابع input صحبت کنم.

وارد کردن داده ها از طریق دستور input:

با استفاده از این دستور کاربر میتواند آرایه ای از داده ها  را وارد برنامه کند.این داده ها میتوانند به صورت عدد ،رشته،بردار یا ماتریس باشند.

وارد کردن عدد (اسکالر)

فرض کنید از کاربر درخواست میکنیم که سن خود را وارد کند .برای این کار در ابتدا  یک متغیر به نام ageتعریف میکنیم .درخواستی که قرار هست برای کاربر نمایش داده بشه به صورت زیر است؛

Enter your age:

برای اینکار دستور زیر را مینویسیم:

age=input('Enter your age: ');

با اجرای این خط از کد،کاربر میتواند سن خود را وارد کند.

میتوان با استفاده از دستور inputعددی را از کاربر گرفت و بلافاصله آن را در فرمول مورد نظر قرار داد ومحاسبات مد نظر را انجام داد.

در مثال زیر 45 توسط کاربر وارد شده است ،پس از فشردن کلید Enter ،مقدار out برابر 0.7854خواهد شد که از رابطه ی

(45*pi/180)

به دست آمده است.

out=input('Enter the starting angle in degree:')

به عنوان مثالی دیگر ،تبدیل دما از سانتیگراد به فارنهاید را در نظر بگیرید:

out=1.8*input('Enter the temperature in degree C:')+32;

که نتیجه به صورت زیر است :

Enter the tempreature in degree C:100

مقدار 100 توسط کاربر وارد میشود،در حالی که مقدار out برابرا با 212 است.

میتوان پیام را در چندین خط در محل دلخواه چاپ کرد که اینکار با استفاده از 

/n

صورت میگیرد.

وارد کردن رشته(حروف)

برای وارد کردن رشته ها از دستور زیر میتوان استفاده کرد :

inputdata=input('Enter file name,including its extension:','s' ('

وارد کردن بردار :

برای وارد کردن یک کمیت برداری از دستور زیر استفاده میکنیم.

inputdata=input('Enter your numbers: ');

بعد از اجرای این خط در پنجره ی فرمان عبارت زیر نمایش داده میشود.

Enter your numbers:[1 2 3 4]

بردار فوق توسط کاربر وارد شده است.قرار دادن []الزامی است.برای وارد کردن همین بردار به صورت عمودی به این صورت عمل میکنیم:

[1 2 3 4]'

وارد کردن ماتریس :برای وارد کردن ماتریسی از مقادیر عددی به صورت زیر عمل میکنیم:

inputdata=input(Enter the matrix: );

بعد از اجرای این خط در پنجره ی فرمان داریم:

 Enter the matrix:[2 3 4 5 ;1 2 55 2]

ماتریس فوق دارای بعد دو در چهار است که توسط کاربر وارد شده است.

در ادامه قصد داریم با  رشته های کاراکتری  آشنا شویم .

برای تعریف رشته های کاراکتری در MATLAB از علامت '' استفاده میکنیم و رشته را داخل آن مینویسیم.

در MATLABرشته های کاراکتری نیز به عنوان ماتریس شناخته میشوند .و هر کاراکتر یک عنصر از ماتریس است.

 

همونطور که در کد زیر میبینید.با وارد کردن دستور 

Size(s)

ابعاد این ماتریس نمایش داده میشود:

» s='Hello world';
» s
s =
Hello world
» size(s)
ans =
     1    11
»

ما میتوانیم هر رشته را به صورت کد های اسکی نیز نمایش دهیم.برای این کار از دستور abs استفاده میکنیم .

» s= 'Hello world';
» u=abs(s)

u =
    72   101   108   108   111    32   119   111   114   108   100
»

ما میتوانیم کد های اسکی را نیز به کاراکتر تبدیل کنیم .برای این کار از تابع char استفاده میکنیم .

در کد زیر با استفاده از این دستور کد های اسکی قرار گرفته در ماتریس uرا به رشته ی Hello worldتبدیل کردیم .

» s= 'Hello world';
» u=abs(s)
u =
    72   101   108   108   111    32   119   111   114   108   100
» 
A=char(u)

A =
Hello world

»

با استفاده از دستور invمیتوان رشته را از آخر به اول چاپ کرد.

برای مثال فرض کنید رشته ی ما به صورت زیر باشد.

S='Hello'

با استفاده از دستور disp معکوس این رشته به صورت olleH نمایش داده می شود 

Sinv=S(end:-1:1);
disp(sinv)

با رشته های کاراکتری نیز میتوان مانند ماتریس های عددی رفتار کرد  و عملیات ریاضی را روی آن اعمال کرد .در این حالت کد اسکی ان مورد استفاده قرار میگیرد.

یکی از راه های ایجاد ماتریس کاراکتری استفاده از تابع char است.

برای مثال فرض کنید دو رشته به صورت زیر تعریف کردیم:

Line1='Hello';
Line2='world';
Sm=char(Line1,Line2);

 

که خروجی آن به صورت زیر است:

Hello

world

گرفتن رشته در حین اجرای برنامه :

ما میتوانیم موقع اجرای برنامه ،رشته را از کاربر بگیریم.این کار را با استفاده از تابع input انجام میدهیم .

دو روش برای اینکار وجود دارد.در روش اول تابع input را تنها با یک آرگومان ورودی به کار میبریم .و رشته را داخل ''قرار  میدهیم.

در روش دیگر از یک آرگومان دیگر به نام s استفاده میکنیم در این صورت MATLABورودی که کاربر وارد میکند را به عنوان رشته تلقی میکند حتی اگر این ورودی عدد یا نام یک متغیر باشد .

دو  مثال زیر را در نظر بگیرید.

» s=input('Do you want to learn?: ')
Do you want to learn?: 'yes'
s =
yes

» s=input('Do you want to learn?:','s')
Do you want to learn?:yes

s =
yes

توابع دیگری نیز برای کار با رشته ها وجود دارند مانند :

strcmp(s1,s2)

 این تابع دو رشته ی ورودی را مقایسه میکند.در صورتی که یکسان باشند مقدار 1 و در غیر این صورت مقدار 0 را برمیگرداند .

upper

تمامی حروف یک رشته را به حروف بزرگ تبدیل میکند .

lower

تمامی حروف یک رشته را به حروف کوچک تبدیل میکند .

str2num

رشته عددی را به عدد تبدیل میکند .

num2str

عدد را به رشته ی عددی تبدیل میکند.

mat2str

تبدیل ماتریسی از اعداد به رشته

» a=input('Enter  value= ';
disp(['You number is', num2str(a) , ' . Thank you!']);
Enter  value= 13
You number is13 . Thank you!
»

مثال:

 

» a=input('Enter <a> value= ';
disp(['You number is', num2str(a) , ' . Thank you!']);
Enter <a> value= 13
You number is13 . Thank you!
»

 

خب فکر میکنم برای امشب کافی باشه.در جلسه بعد در رابطه با نوابع  صحبت خواهیم کرد.