است .هر کا راکتر در دو بایت از حافظه ذخیره می شود .charیک رشته در مطلب آرایه ای از نوع

 

یک متغیر کاراکتری هنگامی که یک رشته بدان نسبت داده می شود خود به خود به وجود می آید :

 

مثال :

 

 

>> str=irmatlab’

 

str =

 

irmatlab

 

>> whos str

  Name      Size                    Bytes  Class

 

  str       1×18                       36  char array

 

Grand total is 18 elements using 36 bytes

 

 :ischarدستور

برای چک کردن آرایه های کاراکتری به کار می رود اگر متغیر ورودی یک کاراکتر باشد این تابع یک و در غیر این صورت صفررا بر می گرداند .

 

 

>> ischar str

 

ans =

 

     1

 

 :doubleدستور

 

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

 

 

>> a=’matlab’

 

a =

 

matlab

 

>> x=double(a)

 

x =

 

   109    97   116   108    97    98

 

 :charدستور

 

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

 

 

>> char(x)

 

ans =

 

matlab

 

ایجاد آرایه کاراکتری دو بعدی :

 

 

امکان ایجاد آرایه های کاراکتری دو بعدی وجود دارد ولی بدین منظور سطرهای آرایه باید دارای طول یکسانی باشند.

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

 

>> name=[‘hi’;’salam’];

??? Error using ==> vertcat

CAT arguments dimensions are not consistent.

 

 

 

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

>> name=char(‘abbas salimi’,’matlabseven’)

 

name =

 

abbas salimi

matlabseven

 

 : deblankدستور

 

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

 

>> A{1,1} = ‘MATLAB    ‘;

A{1,2} = ‘SIMULINK    ‘;

A{2,1} = ‘Toolboxes    ‘;

A{2,2} = ‘The MathWorks    ‘;

>> A

 

A =

 

    ‘MATLAB    ‘       ‘SIMULINK    ‘    

    ‘Toolboxes    ‘    ‘The MathWorks    ‘

 

>> deblank(A)

 

ans =

 

    ‘MATLAB’       ‘SIMULINK’    

    ‘Toolboxes’    ‘The MathWorks’

 

                                                                    :strcatدستور

 

دو یا چند رشته را به صورت افقی به هم متصل می کند .این تابع به فضا های خالی درون رشته ها کاری ندارد

ولی فضاهای خالی بین دو رشته را حذف می کند:

 

>> result=strcat(‘matlab’,’seven’)

 

result =

 

matlabseven

 

 :strvcatدستور

 

دو یا چند رشته را به صورت عمودی به هم وصل می کند:

 

>> h=strvcat(‘welcom’,’to’,’matlabseven’)

 

h =

 

welcom    

to        

matlabseven

 

مقایسه رشته ها:

 

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

 

 :strcmpدستور

 

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

>> str1=’hello’;

>> str2=’Hello’;

>> str3=’help’;

>> strcmp(str1,str2)

 

ans =

 

     0

 

می بینید که این دستور دو عبارت بالا را برابر ندانست یعنی به بزرگی و کوچکی حروف حساس

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

 

 :strcmpiدستور

 

بدون در نظر گرفتن بزرگی و کوچکی حروف برابری آنها را مقایسه می کند:

 

>> strcmpi(str1,str2)

 

ans =

 

     1

 

>> strcmpi(str1,str3)

 

ans =

 

     0

 :strncmp دستور

 

 کاراکتر اول دو رشته مشابه هستند یا نه ؟nتشخیص می دهد که آیا

 

>> strncmp(str1,str3,2)

 

ans =

 

     1

 

>> strncmp(str1,str3,3)

 

ans =

 

     1

 

>> strncmp(str1,str3,4)

 

ans =

 

     0

برابرند .  help وhelloسه حرف اول از

 

: strncmpiدستور

.

 

nبدون در نظر گرفتن بزرگی و کوچکی حروف برابری آنها را در

کاراکتر اول محاسبه می کند.

 

>> strncmpi(str1,str3,3)

 

ans =

 

     1

 

>> strncmpi(str1,str3,4)

 

ans =

 

     0

 

 :isletterدستور

 

مشخص می کند که یک کاراکتر حرف است یا نه در غیر این صورت

صفر بر می کرداند.

 

>> matlabseven=’matlab7′;

>> isletter(matlabseven)

 

ans =

 

     1     1     1     1     1     1     0

 

 :isspaceدستور

 

به ازای فضاهای خالی یک بر می گرداند:

 

>> matlabseven=’how are you’;

>> isspace(matlabseven)

 

ans =

 

     0     0     0     1     0     0     0     1     0     0     0

 

 :findstrدستور

 

درون یک رشته را برای یک کلمه  جستجو می کند:

str=’i love learning matlab in matlabseven’;

 

>> findstr(str,’matlab’)

 

ans =

 

17        27

  دو بار در عبارت بالا آمده است .کاراکتر17و27matlabکلمه

 

 : strmatchدستور

 

یکی دیگر از توابع انطباقی می باشد.این تابع بر روی کاراکتر های آغازین ردیف های

 یک آرایه کاراکتری دو بعدی نظر می افکند و لیستی از ردیف های آغاز شونده با ترتیب

کاراکتر های مورد نظر ایجاد می کند.

 

  ایجاد میکنیم :strvcatیک آرایه کاراکتری با

 

>> x = strmatch(‘max’, strvcat(‘max’, ‘minimax’, ‘maximum’))

 

x =

 

     1

     3

: strrep دستور

 

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

 

result=strrep(str,srch,repl)

 

 همان رشته ای است که قرار است بررسی شود.str

رشته ای است که باید جستجو شود.srch

 رشته جایگزین شونده است.repl

 

 

>> str=’i love matlab’;

>> result=strrep(str,’matlab’,’matlabseven’)

 

result =

 

i love matlabseven

 

:strtok دستور

 

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

درصورت عدم ذکر کاراکتر محدود ساز در ورودی کاراکتر پیش فرض که فضای سفید

می باشد مورد استفاده قرار می گیرد.

 

شکل کلی آن به صورت زیر است :

 

[token,remainder]=strtok(string,delim)

 

  رشته ورودی است .string

 که اختیاری است مجموعه ای از کاراکتر های محدود سازاست .  delim

قرار میگیرد  اولین مجموعه کاراکترهایی را که قبل از کاراکتر محدود ساز token

  می آید.delim  باقی رشته است که بعد از remainder و درانتها

 

>> [token,remainder]=strtok(‘here is matlabseven’)

 

token =

 

here

 

 

remainder =

 

 is matlabseven