دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام

رشته در متلب

Strings

ایجاد کاراکتر رشته در متلب، به نسبت کار ساده ای می باشد. در حقیقت، در متلب کاربرد فراوانی دارد. به عنوان مثال در پنجره دستور command عبارت زیر را می نویسیم.

my_string = 'Tutorial's Point'

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

my_string = Tutorial's Point

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

whos

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

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

جالب توجه است که می توانید از توابع تبدیل عددی مانند uint8 یا uint16 برای تبدیل به کاراکتر ها در رشته به کد های عددی دیگر استفاده کرد. تابع char، بردار integer (اعداد صحیح) را به کاراکتر تبدیل می کند.

یک فایل اسکریپت ایجاد کنید و عبارت زیر را در آن تایپ کنید.

my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string)        % 8-bit ascii values
str_back_to_char= char(str_ascii)  
str_16bit = uint16(my_string)       % 16-bit ascii values
str_back_to_char = char(str_16bit) 

وقتی فایل را اجرا می کنید، نتیجه های زیر را می بینید.

str_ascii =
 
   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116
 
str_back_to_char = Tutorial's Point
str_16bit =
 
   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116
 
str_back_to_char = Tutorial's Point

آرایه کاراکتر مستطیلی

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

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

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

1)     با استفاده از عملگر [] و جدا کردن سطر با استفاده از (;) می توان آرایه مستطیلی را ایجاد کرد. یاد آوری می کنیم که در این روش سطر ها از تعداد یکسان کاراکتر برخوردار باشند. برای رشته ها با طول های مختلف، باید با کاراکتر space (فاصله) این رشته ها را با هم، هم طول کنیم.

2)     استفاده از تابع char. اگر رشته ها با طول های مختلف باشند، رشته ها را به صورت دنباله در کنار هم می نویسیم و رشته با طول کمتر را در ابتدای دنباله می نویسیم و این ترتیب افزایشی طول را ادامه می دهیم.

مثال

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

doc_profile = ['Zara Ali                             '; ...
               'Sr. Surgeon                          '; ...
               'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
                   'RN Tagore Cardiology Research Center')

وقتی که فایل بالا را اجرا می کنیم، نتیجه زیر را خواهیم دید.

doc_profile =
Zara Ali                             
Sr. Surgeon                          
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali                            
Sr. Surgeon                         
RN Tagore Cardiology Research Center

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

1)     با استفاده از عملگر [] و جدا کردن ستون با استفاده از (,) می توان آرایه مستطیلی را ایجاد کرد. یاد آوری می کنیم که در این روش سطر ها از تعداد یکسان کاراکتر برخوردار باشند. برای رشته ها با طول های مختلف، باید با کاراکتر space (فاصله) این رشته ها را با هم، هم طول کنیم.

2)     با استفاده از تابع strcat. اگر رشته ها با طول های مختلف باشند، رشته ها را به صورت دنباله در کنار هم می نویسیم و رشته با طول کمتر را در ابتدای دنباله می نویسیم و این ترتیب افزایشی طول را ادامه می دهیم.

یک فایل اسکریپت ایجاد کنید و عبارت زیر را در آن تایپ کنید.

name =     'Zara Ali                             ';
position = 'Sr. Surgeon                          '; 
worksAt =  'R N Tagore Cardiology Research Center';
profile = [name ', ' position ', ' worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)

بعد از اجرا نتیجه زیر را خواهید دید.

profile = Zara Ali                             , Sr. Surgeon                          , R N Tagore Cardiology Research Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

ترکیب رشته ها به Cell Array (خانه های آرایه)

بنا به بحث های گذشته، واضح است که رشته ها با طول های مختلف با روش های بالا با هم ترکیب می شوند که در آن در انتهای هر رشته از کاراکتر space (فاصله) برای هم طول شدن استفاده کردیم.

یک روش کارآمد برای ترکیب رشته ها، تبدیل نتیجه آرایه به خانه های آرایه می باشد.

در متلب خانه آرایه، می تواند انواع و سایز های مختلف داده در یک آرایه را نگه دارد. خانه آرایه یک روش انعطاف پذیر برای تولید رشته ها با طول های مختلف می باشد. تابع cellstr یک آرایه کاراکتر را به خانه آرایه رشته ها تبدیل می کند.

مثال

یک فایل اسکریپت ایجاد کنید و عبارت زیر را در آن تایپ کنید.

name =     'Zara Ali                             ';
position = 'Sr. Surgeon                          '; 
worksAt =  'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)

وقتی عبارت بالا اجرا می شود، خواهیم داشت.

{                                                                               
  [1,1] = Zara Ali                                                              
  [2,1] = Sr. Surgeon                                                           
  [3,1] = R N Tagore Cardiology Research Center                                 
} 

توابع رشته ای در متلب

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

 

Function

Purpose

Functions for storing text in character arrays, combine character arrays, etc.

blanks

ایجاد رشته ای از کاراکتر خالی

cellstr

ایجاد خانه آرایه رشته ها از آرایه کاراکتر

char

تبدیل آرایه کاراکتر (رشته)

iscellstr

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

ischar

  آرایه کاراکتر استitemمشخص می کند که آیا

sprintf

فرمت داده به رشته

strcat

ترکیب رشته های افقی

strjoin

اتصال رشته ها در خانه آرایه به رشته ساده

Functions for identifying parts of strings, find and replace substrings

ischar

 آرایه کاراکتر استitemمشخص می کند که آیا

isletter

عناصر آرایه ای که فقط شامل حروف هستند

isspace

عناصر آرایه ای که کاراکتر ها فاصله هستند

isstrprop

تعیین می کند که آیا رشته کتگوری مشخص شده است

sscanf

خواندن داده فرمت شده از رشته

strfind

پیدا کردن یک رشته در رشته دیگر

strrep

یافتن و جایگذاری زیر رشته ها

strsplit

رشته خرد شده در حائل مشخص شده

strtok

انتخاب قسمت هایی از رشته

validatestring

بازبینی اعتبار متن رشته

symvar

تعیین نماد متغیر ها در عبارت

regexp

 (case sensitive)وصل کردن عبارت منظم

regexpi

 (case insensitive)وصل کردن عبارت منظم

regexprep

جایگزین کردن رشته با استفاده از عبارت منظم

regexptranslate

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

Functions for string comparison

strcmp

 (case sensitive)مقایسه رشته ها

strcmpi

(case sensitive) مقایسه رشته ها

strncmp

مقایسه n کاراکتر اول رشته ها (case sensitive)

strncmpi

 (case insensitive) مقایسه n کاراکتر اول رشته ها

Functions for changing string to upper- or lowercase, creating or removing white space

deblank

حذف کردن فضای خالی اضافی از انتهای یک رشته

strtrim

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

lower

تبدیل رشته به حروف کوچک

upper

تبدیل رشته به حروف بزرگ

strjust

Justify آرایه کاراکتری

به عنوان مثال بعضی از توابع بالا در پایین ذکر شده اند.

Formatting Strings

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

A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)

وقتی عبارت بالا اجرا شود، نتیجه به صورت زیر بیان می شود.

ans =  3141.592654 
 3141.59 
 +3141.59 
      3141.59 
 000003141.59

Joining Strings

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

%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
 
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")

وقتی عبارت بالا اجرا شود، نتیجه به صورت زیر بیان می شود.

str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange

Finding and Replacing Strings

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

students = {'Zara Ali', 'Neha Bhatnagar', ...
            'Monica Malik', 'Madhu Gautam', ...
            'Madhu Sharma', 'Bhawna Sharma',...
            'Nuha Ali', 'Reva Dutta', ...
            'Sunaina Ali', 'Sofia Kabir'};
 
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)

وقتی عبارت بالا اجرا شود، نتیجه به صورت زیر بیان می شود.

new_student = 
{
  [1,1] = Poulomi Dutta
}
first_names = 
{
  [1,1] = Zara
  [1,2] = Neha
  [1,3] = Monica
  [1,4] = Madhu
  [1,5] = Madhu
  [1,6] = Bhawna
  [1,7] = Nuha
  [1,8] = Reva
  [1,9] = Sunaina
  [1,10] = Sofia
}

Comparing Strings

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

str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
 sprintf('%s and %s are equal', str1, str2)
else
 sprintf('%s and %s are not equal', str1, str2)
end

وقتی عبارت بالا اجرا شود، نتیجه به صورت زیر بیان می شود.

str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal

 

1394/09/04 9670 1566
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...