آموزش توابع رشته ای و مقایسه آن ها در متلب مطلب matlab
::: در حال بارگیری لطفا صبر کنید :::
آموزش توابع رشته ای و مقایسه آن ها در متلب مطلب matlab
www.rozex.rozblog.com
نام کاربری : پسورد : یا عضویت | رمز عبور را فراموش کردم

صفحه اصلیبررسی و آموزش نرم افزار متلب MATLABآموزش توابع رشته ای و مقایسه آن ها در متلب مطلب matlab

تعداد بازدید : 1504
نویسنده پیام
smyt آفلاین
مدیر انجمن

ارسال‌ها : 20
عضويت : 25 /12 /1392
سن : 24
آموزش توابع رشته ای و مقایسه آن ها در متلب مطلب matlab

آموزش توابع رشته ای و مقایسه آن ها در متلب مطلب matlab

توابع رشته ای :

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

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

مثال :

>> str=\'matlabseven.blogfa\'

str =

matlabseven.blogfa

>> whos str

Name Size Bytes Class

str 1x18 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دستور

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

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

>> matlabsmyt=\'matlab7\';

>> isletter(matlabsmyt)

ans =

1 1 1 1 1 1 0

:isspaceدستور

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

>> matlabsmyt=\'how are you\';

>> isspace(matlabsmyt)

ans =

0 0 0 1 0 0 0 1 0 0 0

:findstrدستور

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

str=\'i love learning matlab in matlabsmyt\';

>> 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\',\'matlabsmyt\')

result =

i love matlabsmyt

:strtok دستور

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

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

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

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

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

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

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

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

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

>> [token,remainder]=strtok(\'here is matlabsmyt\')

token =

here

remainder =

is matlabsmyt


یکشنبه 25 اسفند 1392 - 13:25
ارسال پیام نقل قول تشکر گزارش



برای ارسال پاسخ ابتدا باید لوگین یا ثبت نام کنید.



تمامي حقوق محفوظ است . طراح قالبــــ : روزیکســــ