رشته ها در زبان متلب – آموزش متلب

  • دوشنبه ۱۶ فروردین ۱۴۰۰
  • بازدید ۸۸۲ نفر

تصویر matlab-strings_4486 رشته ها در زبان متلب - آموزش متلب

رشته ها در زبان متلب

ایجاد یک رشته از کاراکترها در زبان MATLAB کار خیلی ساده ای است. برای مثال اگر دستور زیر را در command prompt وارد کنید:

متلب آن را اجرا کرده و خروجی زیر را تولید خواهد کرد:

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

خروجی:

شما می توانید از توابع تبدیلی عددی مانند uint8 یا uint16 به منظور تبدیل کاراکترها در یک رشته به کدهای ascii استفاده کنید. تابع char برعکس این عمل را انجام می دهد (یعنی عدد به کاراکتر).

مثال:

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

خروجی کد فوق:

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

تا اینجا برای نگه داری رشته ها از آرایه ها یک بعدی استفاده کردیم. اما اگر بخواهیم چندین رشته را نگه داریم می توانیم از آرایه کاراکتر مستطیلی استفاده کنیم. ساده‌ترین راه برای ایجاد این نوع آرایه، چسباندن دو (یا چند) آرایه یک بعدی از کاراکتر به هم است (افقی یا عمودی).

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

  • استفاده از عملگر [] متلب و جدا سازی هر سطر با استفاده از (;). توجه داشته باشید که در این روش هر سطر باید تعداد کاراکتر یکسانی داشته باشد. برای رشته هایی که طول متفاوتی دارند، باید از کاراکتر فضای خالی برای تنظیم طول رشته ها استفاده کنید.
  • استفاده از تابع char. اگر رشته ها طول متفاوتی داشته باشند، این تابع رشته های کوتاه تر را با جای خالی پر می کند تا همه سطرها طول یکسان داشته باشند.

مثال:

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

خروجی:

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

  • استفاده از عملگر [] متلب و جدا کردن رشته ها با کاما یا فضای خالی. این روش تمام فضاهای خالی را حفظ می کند.
  • استفاده از تابع strcat. این تابع فضاهای خالی را حذف می کند.

مثال:

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

خروجی:

ترکیب رشته ها در یک آرایه سلولی

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

مثال:

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

خروجی:

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

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

تابعهدف
توابع مربوط به نگه داری متن در آرایه کاراکتری، ترکیب آرایه کاراکتری و غیره
blanksرشته از فضای خالی ایجاد می کند
cellstrاز آرایه کاراکتری، آرایه سلولی از رشته ها ایجاد می کند
charبه آرایه کاراکتری تبدیل می کند
iscellstrمشخص میکند که آیا ورودی یک آرایه سلولی از شته ها است یا خیر
ischarمشخص می کند که آیا ورودی یک آرایه کاراکتری است یا خیر
sprintfداده ها را به صورت رشته قالب بندی می کند
strcatرشته ها را به صورت افقی به هم وصل می کند
strjoinرشته های موجود در آرایه سلولی را به یک رشته واحد تبدیل می کند
توابع مربوط به شناسایی بخش هایی از رشته، پیدا و جایگزین کردن زیر رشته ها
ischarمشخص می کند که آیا ورودی یک آرایه کاراکتری است یا خیر
isletterعناصری از آرایه که حروف الفبا هستند
isspaceعناصری از آرایه که کاراکتری فضای خالی هستند
sscanfداده های قالب بندی شده را از رشته می خواند
strfindیک رشته را در داخل رشته دیگر پیدا می کند
strrepیک رشته را در رشته دیگر جایگزین می کند
strsplitرشته با استفاده از جدا کننده مشخص شده از هم جدا می کند
strtokبخش های انتخاب شده از رشته
validatestringاعتبار متن رشته ای را بررسی می کند
symvarمتغیرهای symbolic راغ در یک عبارت مشخص می کند
regexpمطابقت عبارت منظم را بررسی می کند (حساس به حروف بزرگ و کوچک است)
regexpiمطابقت عبارت منظم را بررسی می کند (حساس به حروف بزرگ و کوچک نیست)
regexprepیک رشته را با استفاده از عبارت منظم جایگزین می کند
regexptranslateعبارت منظم را به رشته ترجمه می کند
توابع مربوط به مقایسه رشته ها
strcmpرشته ها را مقایسه می کند (حساس به حروف بزرگ و کوچک است)
strcmpiرشته ها را مقایسه می کند (حساس به حروف بزرگ و کوچک نیست)
strncmpN کاراکتر اول رشته را مقایسه می کند (حساس به حروف بزرگ و کوچک است)
strncmpiN کاراکتر اول رشته را مقایسه می کند (حساس به حروف بزرگ و کوچک نیست)
توابع مربوط به تغییر رشته به حروف بزرگ یا کوچک، ایجاد یا حذف فضای خالی
deblankفضاهای خالی انتهای رشته را حذف می کند
strtrimفضاهای خالی انتها و ابتدای رشته را حذف می کند
lowerکاراکترهای رشته را به حروف کوچک تبدیل می کند
upperکاراکترهای رشته را به حروف بزرگ تبدیل می کند
strjustآرایه کاراکتری را Justify می کند

مثال ها

در ادامه برای برخی از توابع گفته شده در جدول بالا، مثال هایی قرار داده ایم که تا نحوه عملکرد آن ها را مشاهده کنید.

قالب بندی رشته ها

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

خروجی:

پیوند دادن رشته ها

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

خروجی:

پیدا و جایگزین کردن رشته ها

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

خروجی:

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

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

خروجی:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است