آموزش متلب

رشته ها (متن ها – strings) در متلب (3)

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

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

فرض کنید دستور strtok را به صورت زیر به کار ببریم :

[token, remain] = strtok(‘name = ali’, ‘=’)

دستور strtok ، علامت مساوی (=) را به عنوان علامت جداکننده (delimiter) در نظر می گیرد و سپس در رشته ای که دریافت کرده، از ابتدا شروع کرده و به دنبال اولین علامت مساوی (=) می گردد. به اولین علامت مساوی (=) که برسد، تمامی کاراکترهای آن را در یک رشته با نام token قرار می دهد و همچنین علامت تساوی (=) و تمامی کاراکترهای بعد از آن را در یک رشته با نام remain (به معنای باقیمانده، زیرا باقیمانده رشته است) قرار خواهد داد و این دو رشته را به ما برمی گرداند.

نکته

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

مثال
clear all
close all
clc

[token, remain] = strtok(‘name = ali’, ‘=’)
whos

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

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

نتیجه :

token =

name

remain =

= ali

  Name        Size            Bytes  Class    Attributes

  remain      1×5                10  char              
  token       1×5                10  char

مثال
clear all
close all
clc

[token, remain] = strtok(‘my name is ali’)
whos

چون علامت یا عبارت جداکننده (delimiter) را برای دستور strtok تعیین نکرده ایم، بنابراین به صورت پیش فرض، کاراکتر فضای خالی (space) به عنوان علامت جداکننده (delimiter) در نظر گرفته می شود.

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

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

نتیجه :

token =

my

remain =

 name is ali

  Name        Size            Bytes  Class    Attributes

  remain      1×12               24  char              
  token       1×2                 4  char

مثال
clear all
close all
clc

[token, remain] = strtok(‘my name is ali’,’is’)
whos

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

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

نتیجه :

token =

my name

remain =

is ali

  Name        Size            Bytes  Class    Attributes

  remain      1×6                12  char              
  token       1×8                16  char

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *