[آموزش] رشته ها (متن ها - strings) در متلب

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب این تاپیک:

  1. اتصال دو یا چند رشته (string) به یکدیگر در متلب
  2. اتصال دو رشته (string) به یکدیگر، به صورت عمودی (vertically)، با دستور strvcat در متلب
  3. اشتباه نگرفتن رشته ها (string) با توابع (function) در متلب
  4. قرینه کردن (معکوس کردن - mirror - revert) یک رشته (string)، با دستور fliplr در متلب
  5. پیدا کردن یک رشته (string) درون رشته ای دیگر، با دستور strfind در متلب
  6. پیدا کردن یک رشته (string) درون رشته ای دیگر و سپس جایگزین کردن یک رشته خاص به جای آن، با دستور strrep در متلب
  7. تقسیم یک رشته (string) به دو رشته مجزا، بر اساس وجود یک علامت یا عبارت جداکننده (delimiter)، با دستور strtok در متلب
  8. مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها، به صورت حساس به بزرگی و کوچکی حروف (case sensitive)، با دستور strcmp در متلب
  9. مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها، به صورت غیرحساس به بزرگی و کوچکی حروف (case insensitive)، با دستور strcmpi در متلب
  10. حذف کاراکترهای فضای خالی (space) موجود در ابتدا و انتهای یک رشته (string)، با دستور strtrim در متلب
  11. تبدیل تمامی حروف موجود در یک رشته (string) به حروف کوچک (lowercase)، با دستور lower در متلب
  12. تبدیل تمامی حروف موجود در یک رشته (string) به حروف بزرگ (uppercase)، با دستور upper در متلب


منبع: kelidestan.com
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اتصال دو یا چند رشته (string) به یکدیگر در متلب

اتصال دو یا چند رشته (string) به یکدیگر در متلب

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

[h=2]اتصال دو یا چند رشته به یکدیگر بدون به کار بردن دستور :[/h]همان طور که می دانید، چنانچه عبارتی را در بین دو علامت ' قرار دهیم، نرم افزار متلب، آن عبارت را به صورت ((رشته)) در نظر می گیرد. برای اتصال دو رشته به هم، می توانید همانند مثال زیر عمل کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#A020F0]'you are'[/COLOR]
B=[COLOR=#A020F0]' my friend'[/COLOR]
C=[COLOR=#008800][[/COLOR]A,B[COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
you are
 
 
B =
 
 my friend
 
 
C =
 
you are my friend[/FONT]
[/FONT][/COLOR]
مشاهده می کنید که رشته C ، حاصل اتصال دو رشته A و B می باشد.

[h=4]نکته :[/h]در مثال قبل مشاهده کردید که فاصله خالی نیز، یک کاراکتر، به حساب می آید و اگر اولین کاراکتر از رشته B را برابر فاصله قرار نمی دادیم، آنگاه در رشته C ، دو کلمه are و my به هم می چسبیدند.

[h=2]اتصال دو یا چند رشته به یکدیگر با دستور strcat :[/h]دستور strcat ، برای اتصال دو یا چند رشته به یکدیگر، به کار می رود. برای آشنایی با نحوه استفاده از دستور strcat ، به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#A020F0]'you are'[/COLOR]
B=[COLOR=#A020F0]' my friend'[/COLOR]
C=[COLOR=#0000FF]strcat[/COLOR][COLOR=#008800]([/COLOR]A,B[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
you are
 
 
B =
 
 my friend
 
 
C =
 
you are my friend[/FONT]
[/FONT][/COLOR]
مشاهده می کنید که رشته C ، حاصل اتصال دو رشته A و B می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اتصال دو رشته (string) به یکدیگر، به صورت عمودی (vertically)، با دستور strvcat در متلب

اتصال دو رشته (string) به یکدیگر، به صورت عمودی (vertically)، با دستور strvcat در متلب

در مبحثی دیگر، دستور strcat را معرفی کردیم که برای اتصال دو رشته (string) به یکدیگر ، به صورت افقی (horizontally)، می باشد (که در واقع، نوع معمولی اتصال رشته ها به هم است)، اما گاهی نیاز داریم که رشته ها را به گونه ای به یکدیگر متصل کنیم که به صورت جداگانه و در جهت عمودی قرار بگیرند (اتصال به صورت عمودی). برای این منظور، دستور strvcat در متلب به کار می رود.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
S1=[COLOR=#A020F0]'kelidestan.com'[/COLOR];
S2=[COLOR=#A020F0]'site'[/COLOR];
S3=[COLOR=#0000FF]strvcat[/COLOR][COLOR=#008800]([/COLOR]S1,S2[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]S3 =

kelidestan.com
site[/FONT]


[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اشتباه نگرفتن رشته ها (string) با توابع (function) در متلب

اشتباه نگرفتن رشته ها (string) با توابع (function) در متلب

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]f=[COLOR=#A020F0]'2*x+2*y'[/COLOR]
f[COLOR=#008800]([/COLOR][COLOR=#3333FF]5[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]f =
 
[COLOR=#3333FF]2[/COLOR]*x+[COLOR=#3333FF]2[/COLOR]*y
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]2[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که نتیجه برابر با f(x=5)=36 نیست. مشکل در این است که ما f را به صورت یک تابع تعریف نکرده ایم، زیرا عبارت 2*x+2*y در میان دو علامت ' قرار داده شده است که باعث می شود، نرم افزار متلب آن را به صورت یک ((رشته)) در نظر بگیرد. چون f به صورت یک رشته در نظر گرفته شده است، بنابراین دستور (5) f ، پنجمین کاراکتر در رشته f را نمایش خواهد داد، که برابر عدد 2 می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قرینه کردن (معکوس کردن - mirror - revert) یک رشته (string)، با دستور fliplr در متلب

قرینه کردن (معکوس کردن - mirror - revert) یک رشته (string)، با دستور fliplr در متلب

قبلا در مبحثی دیگر، دستور fliplr را معرفی کردیم که برای قرینه کردن عناصر یک ماتریس، در جهت افقی، به کار می رفت، اما از دستور fliplr ، برای قرینه کردن (معکوس کردن - mirror - revert) یک رشته (string) نیز می توانیم استفاده کنیم. برای این منظور، باید رشته (string) مورد نظر را درون پرانتز دستور fliplr بنویسیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]fliplr[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'hello world'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =

dlrow olleh[/FONT]


[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
پیدا کردن یک رشته (string) درون رشته ای دیگر، با دستور strfind در متلب

پیدا کردن یک رشته (string) درون رشته ای دیگر، با دستور strfind در متلب

با استفاده از دستور strfind در متلب، می توانیم یک رشته (string) را درون رشته ای دیگر بیابیم. دستور strfind ، چنانچه رشته مورد نظرمان را در رشته دیگر بیابد، موقعیت اولین کاراکتر آن را برمی گرداند، مثلا اگر سه بار در آن رشته به کار رفته باشد، سه عدد را برمی گرداند که هر عدد، موقعیت اولین کاراکتر یکی از تکرارها می باشد.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]یک رشته داریم که می خواهیم ببینیم که آیا رشته kelid در آن به کار رفته یا خیر و اگر به کار رفته، موقعیت آن در رشته چگونه است :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A=strfind[COLOR=#008800]([/COLOR][COLOR=#A020F0]'kelidestan.com kelid kelidestan.com'[/COLOR], [COLOR=#A020F0]'kelid'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

     [COLOR=#3333FF]1[/COLOR]    [COLOR=#3333FF]16[/COLOR]    [COLOR=#3333FF]22[/COLOR][/FONT]
[/FONT][/COLOR]
چون رشته kelid ، سه بار در رشته دیگر به کار رفته است، بنابراین دستور strfind ، سه عدد را برگردانده است که موقعیت اولین کاراکتر هر یک از آنها را نشان می دهد.

[h=4]مثال :[/h]این بار حالتی را در نظر می گیریم که اصلا رشته مورد نظرمان، در رشته دیگر به کار نرفته باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A=strfind[COLOR=#008800]([/COLOR][COLOR=#A020F0]'kelidestan.com'[/COLOR], [COLOR=#A020F0]'hello'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

     [COLOR=#008800][[/COLOR][COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که دستور strfind ، مقدار تهی را برگردانده است (A برابر یک ماتریس تهی خواهد بود).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
پیدا کردن یک رشته (string) درون رشته ای دیگر و سپس جایگزین کردن یک رشته خاص به جای آن، با دستور strrep در متلب

پیدا کردن یک رشته (string) درون رشته ای دیگر و سپس جایگزین کردن یک رشته خاص به جای آن، با دستور strrep در متلب

با استفاده از دستور strrep در متلب، می توانیم یک رشته (string) را درون رشته ای دیگر پیدا کرده و سپس به جای آن، رشته ای خاص را جایگزین کنیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید قصد داریم که در یک رشته (string)، رشته good bye جایگزین رشته hello شود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A=[COLOR=#0000FF]strrep[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'hello ali. hello hamid.'[/COLOR], [COLOR=#A020F0]'hello'[/COLOR], [COLOR=#A020F0]'good bye'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

good bye ali. good bye hamid.[/FONT]


[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تقسیم یک رشته (string) به دو رشته مجزا، بر اساس وجود یک علامت یا عبارت جداکننده (delimiter)، با دستور strtok در متلب

تقسیم یک رشته (string) به دو رشته مجزا، بر اساس وجود یک علامت یا عبارت جداکننده (delimiter)، با دستور strtok در متلب

با استفاده از دستور strtok در متلب، می توانیم یک رشته (string) را به دو رشته مجزا تبدیل کنیم و این جداسازی، بر اساس وجود یک علامت یا عبارت جداکننده (delimiter) می باشد.

فرض کنید دستور strtok را به صورت زیر به کار ببریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#008800][[/COLOR]token, remain[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]strtok[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'name = ali'[/COLOR], [COLOR=#A020F0]'='[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
دستور strtok ، علامت مساوی (=) را به عنوان علامت جداکننده (delimiter) در نظر می گیرد و سپس در رشته ای که دریافت کرده، از ابتدا شروع کرده و به دنبال اولین علامت مساوی (=) می گردد. به اولین علامت مساوی (=) که برسد، تمامی کاراکترهای آن را در یک رشته با نام token قرار می دهد و همچنین علامت تساوی (=) و تمامی کاراکترهای بعد از آن را در یک رشته با نام remain (به معنای باقیمانده، زیرا باقیمانده رشته است) قرار خواهد داد و این دو رشته را به ما برمی گرداند.

[h=4]نکته :[/h]اگر علامت یا عبارت جداکننده (delimiter) را برای دستور strtok مشخص نکنیم، این دستور به صورت پیش فرض، علامت جداکننده (delimiter) را برابر کاراکتر فاصله خالی (space) در نظر می گیرد.

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

[COLOR=#008800][[/COLOR]token, remain[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]strtok[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'name = ali'[/COLOR], [COLOR=#A020F0]'='[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]whos[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]token =

name 


remain =

= ali

  Name        [COLOR=#0000FF]Size[/COLOR]            Bytes  [COLOR=#0000FF]Class[/COLOR]    Attributes

  remain      1x5                [COLOR=#3333FF]10[/COLOR]  [COLOR=#0000FF]char[/COLOR]               
  token       1x5                [COLOR=#3333FF]10[/COLOR]  [COLOR=#0000FF]char[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

[COLOR=#008800][[/COLOR]token, remain[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]strtok[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'my name is ali'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]whos[/COLOR][/FONT]
[/FONT][/COLOR]
چون علامت یا عبارت جداکننده (delimiter) را برای دستور strtok تعیین نکرده ایم، بنابراین به صورت پیش فرض، کاراکتر فضای خالی (space) به عنوان علامت جداکننده (delimiter) در نظر گرفته می شود.

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

دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]token =

my


remain =

 name [COLOR=#0000FF]is[/COLOR] ali

  Name        [COLOR=#0000FF]Size[/COLOR]            Bytes  [COLOR=#0000FF]Class[/COLOR]    Attributes

  remain      1x12               [COLOR=#3333FF]24[/COLOR]  [COLOR=#0000FF]char[/COLOR]               
  token       1x2                 [COLOR=#3333FF]4[/COLOR]  [COLOR=#0000FF]char[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

[COLOR=#008800][[/COLOR]token, remain[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]strtok[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'my name is ali'[/COLOR],[COLOR=#A020F0]'is'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]whos[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]token =

my name 


remain =

[COLOR=#0000FF]is[/COLOR] ali

  Name        [COLOR=#0000FF]Size[/COLOR]            Bytes  [COLOR=#0000FF]Class[/COLOR]    Attributes

  remain      1x6                [COLOR=#3333FF]12[/COLOR]  [COLOR=#0000FF]char[/COLOR]               
  token       1x8                [COLOR=#3333FF]16[/COLOR]  [COLOR=#0000FF]char[/COLOR][/FONT]
[COLOR=#0000FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها، به صورت حساس به بزرگی و کوچکی حروف (case sensitive)

مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها، به صورت حساس به بزرگی و کوچکی حروف (case sensitive)

مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها، به صورت حساس به بزرگی و کوچکی حروف (case sensitive)،
با دستور strcmp در متلب


با استفاده از دستور strcmp در متلب، می توانیم دو رشته (string) را با یکدیگر مقایسه کنیم و ببینیم که آیا دقیقا مثل هم هستند یا خیر. شیوه مقایسه کردن، به صورت حساس بودن به بزرگی و کوچکی حروف (case sensitive) نیز خواهد بود، یعنی برای مثل هم بودن، تنها معیار مثل هم بودن حروف آنها نیست، بلکه از نظر بزرگ بودن یا کوچک بودن حروف نیز باید مثل هم باشند.

اگر دو رشته (string) دقیقا مثل هم باشند، دستور strcmp ،مقدار 1 را برمی گرداند، اما اگر دو رشته متفاوت باشند، دستور strcmp ، مقدار 0 را برمی گرداند.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A = [COLOR=#0000FF]strcmp[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'Yes'[/COLOR], [COLOR=#A020F0]'No'[/COLOR][COLOR=#008800])[/COLOR]
B = [COLOR=#0000FF]strcmp[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'Yes'[/COLOR], [COLOR=#A020F0]'Yes'[/COLOR][COLOR=#008800])[/COLOR]
C = [COLOR=#0000FF]strcmp[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'YES'[/COLOR], [COLOR=#A020F0]'yes'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

     [COLOR=#3333FF]0[/COLOR]


B =

     [COLOR=#3333FF]1[/COLOR]


C =

     [COLOR=#3333FF]0[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها

مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها

مقایسه دو رشته (string) با یکدیگر، برای چک کردن مثل هم بودن آنها،
به صورت غیرحساس به بزرگی و کوچکی حروف (case insensitive)،
با دستور strcmpi در متلب


با استفاده از دستور strcmpi در متلب، می توانیم دو رشته (string) را با یکدیگر مقایسه کنیم و ببینیم که آیا دقیقا مثل هم هستند یا خیر. شیوه مقایسه کردن، به صورت غیرحساس بودن به بزرگی و کوچکی حروف (case insensitive) نیز خواهد بود، یعنی برای مثل هم بودن، تنها معیار مثل هم بودن حروف آنها است و از نظر بزرگ بودن یا کوچک بودن حروف، نیازی نیست که مثل هم باشند (مثلا A و a را برابر می گیریم).

اگر دو رشته (string) دقیقا مثل هم باشند، دستور strcmpi ، مقدار 1 را برمی گرداند، اما اگر دو رشته متفاوت باشند، دستور strcmpi ، مقدار 0 را برمی گرداند.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A = [COLOR=#0000FF]strcmpi[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'Yes'[/COLOR], [COLOR=#A020F0]'No'[/COLOR][COLOR=#008800])[/COLOR]
B = [COLOR=#0000FF]strcmpi[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'Yes'[/COLOR], [COLOR=#A020F0]'Yes'[/COLOR][COLOR=#008800])[/COLOR]
C = [COLOR=#0000FF]strcmpi[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'YES'[/COLOR], [COLOR=#A020F0]'yes'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

     [COLOR=#3333FF]0[/COLOR]


B =

     [COLOR=#3333FF]1[/COLOR]


C =

     [COLOR=#3333FF]1[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حذف کاراکترهای فضای خالی (space) موجود در ابتدا و انتهای یک رشته (string)، با دستور strtrim در متلب

حذف کاراکترهای فضای خالی (space) موجود در ابتدا و انتهای یک رشته (string)، با دستور strtrim در متلب

گاهی اوقات، ممکن است که به دلایلی، در ابتدا و انتهای یک رشته (string)، تعدادی کاراکتر فضای خالی (space) قرار بگیرد. معمولا هنگام نمایش رشته (string) در خروجی متلب نیز متوجه وجود این کاراکترهای فضای خالی (space) نمی شویم. بنابراین معمولا هنگام کار با رشته ها (string)، قبل از هر چیز، سعی می کنند که کاراکترهای فضای خالی (space) موجود در ابتدا و انتهای رشته (string) را حذف کنند. برای این منظور، دستور strtrim در متلب به کار می رود.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

str_1 = [COLOR=#A020F0]'   my name is ali  '[/COLOR]
str_2 = strtrim[COLOR=#008800]([/COLOR]str_1[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]whos[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]str_1 =

   my name [COLOR=#0000FF]is[/COLOR] ali  


str_2 =

my name [COLOR=#0000FF]is[/COLOR] ali

  Name       [COLOR=#0000FF]Size[/COLOR]            Bytes  [COLOR=#0000FF]Class[/COLOR]    Attributes

  str_1      1x19               [COLOR=#3333FF]38[/COLOR]  [COLOR=#0000FF]char[/COLOR]               
  str_2      1x14               [COLOR=#3333FF]28[/COLOR]  [COLOR=#0000FF]char[/COLOR][/FONT]
[COLOR=#0000FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تبدیل تمامی حروف موجود در یک رشته (string) به حروف کوچک (lowercase)، با دستور lower در متلب

تبدیل تمامی حروف موجود در یک رشته (string) به حروف کوچک (lowercase)، با دستور lower در متلب

با استفاده از دستور lower در متلب، می توانیم تمام حروف موجود در یک رشته (string) را به حروف کوچک (lowercase) تبدیل کنیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

str_1 = [COLOR=#A020F0]'KELIDESTAN.COM'[/COLOR]
str_2 = [COLOR=#0000FF]lower[/COLOR][COLOR=#008800]([/COLOR]str_1[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]str_1 =

KELIDESTAN.COM


str_2 =

kelidestan.com[/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

str_1 = [COLOR=#A020F0]'MATLAB learning'[/COLOR]
str_2 = [COLOR=#0000FF]lower[/COLOR][COLOR=#008800]([/COLOR]str_1[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]str_1 =

MATLAB learning


str_2 =

matlab learning[/FONT]


[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تبدیل تمامی حروف موجود در یک رشته (string) به حروف بزرگ (uppercase)، با دستور upper در متلب

تبدیل تمامی حروف موجود در یک رشته (string) به حروف بزرگ (uppercase)، با دستور upper در متلب

با استفاده از دستور upper در متلب، می توانیم تمام حروف موجود در یک رشته (string) را به حروف بزرگ (uppercase) تبدیل کنیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

str_1 = [COLOR=#A020F0]'kelidestan.com'[/COLOR]
str_2 = [COLOR=#0000FF]upper[/COLOR][COLOR=#008800]([/COLOR]str_1[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]str_1 =

kelidestan.com


str_2 =

KELIDESTAN.COM[/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

str_1 = [COLOR=#A020F0]'MATLAB learning'[/COLOR]
str_2 = [COLOR=#0000FF]upper[/COLOR][COLOR=#008800]([/COLOR]str_1[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]str_1 =

MATLAB learning


str_2 =

MATLAB LEARNING[/FONT]
[/FONT][/COLOR]
 
بالا