تقسیم یک رشته (string) به دو رشته مجزا، بر اساس وجود یک علامت یا عبارت جداکننده (delimiter)، با دستور strtok در متلب
با استفاده از دستور strtok در متلب، می توانیم یک رشته (string) را به دو رشته مجزا تبدیل کنیم و این جداسازی، بر اساس وجود یک علامت یا عبارت جداکننده (delimiter) می باشد.
فرض کنید دستور strtok را به صورت زیر به کار ببریم :
دستور strtok ، علامت مساوی (=) را به عنوان علامت جداکننده (delimiter) در نظر می گیرد و سپس در رشته ای که دریافت کرده، از ابتدا شروع کرده و به دنبال اولین علامت مساوی (=) می گردد. به اولین علامت مساوی (=) که برسد، تمامی کاراکترهای آن را در یک رشته با نام token قرار می دهد و همچنین علامت تساوی (=) و تمامی کاراکترهای بعد از آن را در یک رشته با نام remain (به معنای باقیمانده، زیرا باقیمانده رشته است) قرار خواهد داد و این دو رشته را به ما برمی گرداند.
اگر علامت یا عبارت جداکننده (delimiter) را برای دستور strtok مشخص نکنیم، این دستور به صورت پیش فرض، علامت جداکننده (delimiter) را برابر کاراکتر فاصله خالی (space) در نظر می گیرد.
close all
clc
[token, remain] = strtok('name = ali', '=')
whos
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.
دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.
نتیجه :
name
remain =
= ali
Name Size Bytes Class Attributes
remain 1x5 10 char
token 1x5 10 char
close all
clc
[token, remain] = strtok('my name is ali')
whos
چون علامت یا عبارت جداکننده (delimiter) را برای دستور strtok تعیین نکرده ایم، بنابراین به صورت پیش فرض، کاراکتر فضای خالی (space) به عنوان علامت جداکننده (delimiter) در نظر گرفته می شود.
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.
دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.
نتیجه :
my
remain =
name is ali
Name Size Bytes Class Attributes
remain 1x12 24 char
token 1x2 4 char
close all
clc
[token, remain] = strtok('my name is ali','is')
whos
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه قبلی اجرا شده در متلب می باشد.
دستور whos ، نوع و اندازه متغیرها را نمایش می دهد و بنابراین با آن می توانیم تعداد کاراکترهای رشته ها (string) را متوجه بشویم، زیرا مثلا ممکن است که در ابتدا و انتهای یک رشته، کاراکتر فضای خالی (space) وجود داشته باشد و بنابراین ما در خروجی متلب، متوجه وجود آن نشویم.
نتیجه :
my name
remain =
is ali
Name Size Bytes Class Attributes
remain 1x6 12 char
token 1x8 16 char