صفحه 1:
کلاس آموزشی
عباس طبییدنشگاه صنعتى اصقهان
صفحه 2:
های کاراکتری
برای تعریف رشتههای کاراکتری در متلب از علامت * * استفاده میشود:
مثال:
s='This is a character string’; >>
size(s) >>
ans=
26 1
نکته: در متلب رشتههای کاراکتری نیز بعنوان ماتریس شناخته میشوند
بطوریکه هر کاراکتر یک عنصر ماتربس محسوب میشود.
عباس طبییدنشگاه صنعتى اصقهان
صفحه 3:
۵-۲-نمایش کد اسکی کاراکترها: تابع 305
بای تحاسی سیک عم وان ام 35 حطج
استفاده کرد:
s= ‘Hello’ >>
u=abs(s) >>
u=
111 108 108 101 72
عباس طبییدنشگاه صنعتى اصقهان
صفحه 4:
۵-۳-تبدیل کد اسکی به کاراکتر
برای تبدیل کد اسکی به کاراکتر از تابع ۲18۳ استفاده کنید.
<و <<
u=abs(s) >>
u=
72 101 108 108 1
>> sNew=char(u)
sNew=
Hello
عباس طبییدنشگاه صنعتى اصقهان
صفحه 5:
۵-۴-رفتار ماتریسی رشتهها
با رشتههای کاراکتری متلب دقیقا میتوان مانند ماتریسهای عددی
رفتار کرد. مثلا میتوان عملیات ریاضی را بر آنها اعمال کرد.
در اینصورت متلب کد اسکی رشته را مورد استفاده قرار
میدهد.
مثال: نمایش رشته از آخر به اول
s= ‘Hello’ >>
sInv=s( end: -1: 1); >>
>>disp(sinv)
olleH
عباس طبییدنشگاه صنعتى اصقهان
صفحه 6:
۵-۵-ایجاد ماتریسهای کاراکتری(روش اول)
برای ایجاد یک ماتریس کاراکتری میتوان از علائم | ] و : مانند ایجاد
ماتریسهای عددی استفاده کرد. اما باید دفت شود که تعداد ستونهای
هر سطر مساوی باشند:
sm=[This is first line’ ; ‘This is second line’] >>
Error using ==> vertcat ?22
All rows in the bracketed expression must have the same
number of columns.
بكفاصله sm=(‘This is first line’ Lackoil alts >>
‘This is second line’];
عباس طوییانشگاه صنعتی اصتهان
صفحه 7:
۵-۶-ایجاد ماتریسهای کاراکتری(روش دوم)
روش بهتر برای ایجاه یک ماتریس کاراکتری استفاده از تابع 6۳3۳
میباشد:
linel='This is first line’ ; >>
line2= ‘This is second line’; >>
>>sm=char(linel,line2)
sm=
This is first line
This is second line
عباس طوییانشگاه صنعتی اصتهان
صفحه 8:
۵-۷-گرفتن رشته در حین اجرای برنامه
برای گرفتن یک رشته از ورودی با استفاده از تابع 1۳010۴ در حین اجرای
برنامه دو روش را میتوان بکار برد:
روش اول روش معمول استفاده از اين تابع است. یعنی تابع مذکور را تنها با
یک آرگومان ورودی بکار میبريم. در اینصورت در حین اجراه باید رشته
را در داخل ** قرار ab
روش بهتر استفاده از تابع الا00 با یک آرگومان دوم *5" میباشد که در
اینصورت متلب ورودی کاربر را بعنوان رشته تلقی میکند حتی اگر یک
عدديا نام یک متغير باش
عباس طبییدنشگاه صنعتى اصقهان
صفحه 9:
فصل پنجم: متن
۵-۷ -گرفتن, رشته در حین اجرای برنامه-ادامه-
مثال:
>>s=input(‘Please answer Yes or No: ’)
Please answer Yes or No: ‘No’
>>s=input(‘Please answer Yes or No: ’,’s’)
Please answer Yes or No: No
s=
No
عباس طبییدنشگاه صنعتى اصقهان
صفحه 10:
فصل پنجم: متن
Ge Soe
strcmp(s1,s2) لينصويت» باز میگسردلند: pigs 9 VES LS ديصويتيكه دو رشته
upper = Se
lower Big Sag Shy a ty a Kg ale
num2str — oe
str2num fone apo at
:تبدیلماتریسو از لعداد بسه پشته mat2str
لجرلیفسرمانی از متلبکه بصورتوشته وارد شسده بساشد: eval
a نکته: تفاوت تابع ۱۲25/۲ با تابع ۲۱۵25۳ در این است که در تابع دوم رشته بازگردانده شده
قابل اجرا توسط تابع 6۷۱ است.
عباس طبییدنشگاه صنعتى اصقهان
صفحه 11:
۵-۸ سای توايع کار با رشته ها-ادامهج
مثال:
>> a=input(‘Enter <a> value=‘);
enter <a> value= 12
>> disp({‘You number is’, num2str(a) , * . Thank
you!’]);
Your number is 12 . Thank you!
عباس طبییدنشگاه صنعتى اصقهان
صفحه 12:
تکلیف ۵-۱: برنامهای بنویسید که دو ماتریس عددی را از کاربر بگیرد و
در متغیرهای کا و ۷ قرار دهد. سپس یک رشته کاراکتری شامل
عبارتی ریاضی از متفیرهای ۱6 و ۷ را از کاربر بگیرد و نتیجه آنرا بر
اساس مقادیر متغیرهای ورودی تعیین کند.
تکلیف ۵-۲ برنامای بنویسید که یک رشته کاراکتری را از کربر بگیرد و
با تغيير كد اسکی آن» آنرا بصورت رمز در آورده نمایش دهد.
تکلیف ۵-۳: برنامهای بنویسید که نتایج تمرین ۵-۲ را از حالت رمز خارج
کرده و نمایش دهد.
عباس طوییانشگاه صنعتی اصتهان
فصل پنجم
متن :کار با رشتههای
کاراکتری
کالس آموزشی
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-1رشتههاي کاراکتري
براي تعريف رشتههاي کاراکتري در متلب از عالمت ‘ ‘ استفاده ميشود:
مثال:
;’>> s=‘This is a character string
)>> size(s
=ans
1
26
نکته :در متلب رشتههاي کاراکتري نيز بعنوان ماتريس شناخته ميشوند
بطوريکه هر کاراکتر يک عنصر ماتريس محسوب ميشود.
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-2نمايش کد اسکي کاراکتره?ا :تابع abs
براي نمايش کد اسکي يک رشته ميتوان از تابع absمتلب
استفاده کرد:
’>> s= ‘Hello
)>> u=abs(s
=u
72 101 108 108 111
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-3تبديل کد اسکي به کاراکتر
براي تبديل کد اسکي به کاراکتر از تابع charاستفاده کنيد.
’>> s= ‘Hello
)>> u=abs(s
=u
72 101 108 108 111
)>> sNew=char(u
=sNew
Hello
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-4رفتار ماتريسي رشتهها
با رشتههاي کاراکتري متلب دقيقا ميتوان مانند ماتريسهاي عددي
رفتار کرد .مثال ميتوان عمليات رياضي را بر آنها اعمال? کرد.
در اينصورت متلب کد اسکي رشته را مورد استفاده قرار
ميدهد.
مثال :نمايش رشته از آخر به اول
’>> s= ‘Hello
;)>> sInv=s( end : -1 : 1
)>>disp(sInv
olleH
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-5ايجاد ماتريسهاي کاراکتري(روش اول?)
براي ايجاد يک ماتريس? کاراکتري ميتوان از عالئم [ ] و ; مانند ايجاد
ماتريسهاي عددي استفاده کرد .اما بايد دقت شود که تعداد ستونهاي
هر سطر مساوي باشند:
]’>> sm=[‘This is first line’ ; ‘This is second line
??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.
ي??کف??اص?له خ?ا??ليدر ا?ن?تهايخ?ط ’ >> sm=[‘This is first line
;]’‘This is second line
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-6ايجاد ماتريسهاي کاراکتري(روش دوم)
روش بهتر براي ايجاد يک ماتريس کاراکتري استفاده از تابع char
ميباشد:
; ’>> line1=‘This is first line
;’>> line2= ‘This is second line
)>>sm=char(line1,line2
=sm
This is first line
This is second line
عباس طبیبی-دانشگاه صنعتی اصفهان
فصل پنجم :متن
-5-7گرفتن رشته در حين اجراي برنامه
براي گرفتن يک رشته از ورودي با استفاده از تابع inputدر حين اجراي
برنامه دو روش را ميتوان بکار برد:
روش اول روش معمول استفاده از اين تابع است .يعني تابع مذکور را تنها با
يک آرگومان ورودي بکار ميبريم .در اينصورت در حين اجرا ،بايد رشته
را در داخل ‘ ‘ قرار داد.
روش بهتر استفاده از تابع inputبا يک آرگومان دوم ‘ ’sميباشد که در
اينصورت متلب ورودي کاربر را بعنوان رشته تلقي ميکند حتي اگر يک
عدد يا نام يک متغير باشد.
عباس طبیبی-دانشگاه صنعتی اصفهان
متن:فصل پنجم
-ادامه-گرفتن? رشته در حين اجراي برنامه-5-7
:مثال
>>s=input(‘Please answer Yes or No: ’)
Please answer Yes or No: ‘No’
s=
No
--------------------->>s=input(‘Please answer Yes or No: ’,’s’)
Please answer Yes or No: No
s=
No
دانشگاه صنعتی اصفهان-عباس طبیبی
فصل پنجم :متن
-5-8ساير توابع کار با رشتهها
گ??ردا?ند:
در?صور?ت?يکه دو ر?ش?ته ي??کسانب??اش?ند 1و در?غ?ير ا?ي?نصور?ت 0ب??از م?ي
)strcmp(s1,s2
ک??ند :
ت??مايح?رو?في??کر?ش?ته را ب??ه ح?رو?فب??زر?گت??بدي?لم?ي
ک??ند:
ت??مام?يح?رو?في??کر?ش?ته را ب??ه ح?رو?فک??وچ?کت??بدي?لم?ي
ي
ت??بدي?لع?دد ب??ه ر?ش?ته ع?دد? :
ت??بدي?لر?ش?ته ع?دد?يب??ه ع?دد:
:ت??بدیلم?اتریسیاز ا?عداد ب??ه ر?ش?ته
ا?جرا?یف??رمان?یاز م?تلبک??ه ب??صور?تر?ش?ته وارد ش??ده? ب??اشد:
upper
lower
num2str
str2num
mat2str
eval
نکته :تفاوت تابع num2strبا تابع mat2strدر این است که در تابع دوم رشته بازگردانده شده
قابل اجرا توسط تابع evalاست.
عباس طبیبی-دانشگاه صنعتی اصفهان
متن:فصل پنجم
...ادامه- ساير توابع? کار با رشتهها-5-8
:مثال
>> a=input(‘Enter <a> value= ‘);
enter <a> value= 12
>> disp([‘You number is’, num2str(a) , ‘ . Thank
you!’]);
Your number is 12 . Thank you!
دانشگاه صنعتی اصفهان-عباس طبیبی
فصل پنجم :متن
تکلیف :۵-۱برنامهای بنویسید که دو ماتریس عددی را از کاربر بگیرد و
در متغیرهای xو yقرار دهد .سپس یک رشته کاراکتری شامل
عبارتی ریاضی از متغیرهای xو yرا از کاربر بگیرد و نتیجه آنرا بر
اساس مقادیر متغیرهای ورودی تعیین کند.
تکلیف :۵-۲برنامهای بنویسید که یک رشته کاراکتری را از کاربر بگیرد و
با تغییر کد اسکی آن ،آنرا بصورت رمز در آورده نمایش دهد.
تکلیف :۵-۳برنامهای بنویسید که نتایج تمرین ۵-۲را از حالت رمز خارج
کرده و نمایش دهد.
عباس طبیبی-دانشگاه صنعتی اصفهان