رشته در متلب / matlab strings

رشته‌ در متلب | MATLAB Strings7 دقیقه مطالعه

هدیه فنولوژی به شما!

کار با رشته در متلب به نسبت بسیاری از زبان‌های برنامه نویسی کار دشواری نیست. در این قسمت از دوره آموزش متلب فنولوژی در مورد رشته در متلب و انواع توابع مفید در کار با رشته در متلب صحبت می‌کنیم. با ما همراه باشید.

ساخت رشته در متلب

ساخت رشته‌ای از کاراکترها در متلب کار به نسبت ساده‌ای است. تا اینجای آموزش نیز زیاد از آن استفاده کرده‌ایم. برای مثال عبارت زیر را در بخش command prompt تایپ کنید:

متلب با اجرای کد بالا نتیجه زیر را نمایش می‌دهد:

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

کاربرد توابع عددی در مدیریت رشته‌ها

جالب بدانید می‌توان از توابع تبدیل اعداد در متلب (مانند uint8 یا uint16) برای تبدیل کاراکترهای یک آرایه به کدهای عددی آن‌ها استفاده کرد. سپس تابع char، بردار عددی را به کاراکترها برمی‌گرداند. به مثال زیر توجه کنید:

نتایج به صورت زیر به نمایش در می‌آید. ابتدا رشته را به مقادیر اسکی ۸ بیتی و سپس ۱۶ بیتی تقسیم کرده و مجددا آن‌ها را به رشته برگرداندیم.

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

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

ترکیب عمودی رشته‌ در متلب

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

  • استفاده از عملگر ترکیب در متلب ([]) که هر سطر با علامت سمی کالن (;) جدا می‌شود. در این روش باید تعداد کاراکترهای همه‌ی سطرها برابر باشد (اگر برابر نبود باید از فاصله استفاده کرد تا برابر شوند).
  • استفاده از تابع char. در این روش برای جداسازی سطرها از علامت (,) استفاده می‌شود. اگر طول رشته‌ها برابر نباشد خود تابع با فاصله گذاری مشکل را حل می‌کند. به مثال زیر توجه کنید:
مشاهده نتیجه:

ترکیب افقی رشته در متلب

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

  • استفاده از عملگر ترکیب در متلب ([]) که برای جداسازی ستون‌ها می‌توان از فاصله یا کاراکتر کاما (‘,’) استفاده کرد. این روش فاصله‌های انتهایی را نگه می‌دارد.
  • استفاده از تابع ترکیب رشته در متلب (stract). این روش فاصله‌های انتهایی عبارات را حذف می‌کند.

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

مشاهده نتایج:

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

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

تابع cellstr یک آرایه‌ای از کاراکترها را به آرایه‌ی سلولی از رشته در متلب تبدیل می‌کند. به مثال زیر توجه کنید:

مشاهده نتایج:

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

متلب شامل تعداد زیادی تابع برای ایجاد، ترکیب، تجزیه، مقایسه و تغییر دادن رشته‌ها است. در ادامه به چند مورد از توابع مهم در متلب اشاره می‌کنیم:

توابع مربوط به آرایه‌های کاراکتری

  • blanks : ایجاد رشته‌ای از کاراکترهای خالی
  • cellstr : ایجاد آرایه‌ی سلولی از رشته‌ها از یک آرایه‌ی کاراکتری
  • char : تبدیل به آرایه‌ای از کاراکترها (رشته)
  • iscellstr : بررسی می‌کند آیا ورودی آرایه‌ی سلولی از رشته است یا خیر.
  • ischar : بررسی می‌کند ورودی آرایه‌ای از کاراکتر است یا خیر.
  • sprintf : فرمت داده‌ها را به رشته تبدیل می‌کند. (مثلا تبدیل اعداد واقعی به اعداد متنی)
  • strcat : ترکیب رشته‌ها به صورت افقی
  • strjoin : ترکیب رشته‌های داخل آرایه‌ی سلولی، به یک رشته‌ی واحد

توابع شناسایی بخشی از رشته‌ها (زیررشته‌ها)

  • isletter : بررسی می‌کند ورودی جزو حروف الفبا باشد.
  • isspace : بررسی می‌کند ورودی کاراکتر فاصله (space) باشد.
  • isstrprop : بررسی می‌کند رشته جزو یک کتگوری خاص (حروف الفبا، اعداد و …) باشد.
  • sscanf : خواندن داده‌ی فرمت شده از یک رشته (مثلا تبدیل اعداد متنی به اعداد واقعی)
  • strfind : یافتن یک رشته در رشته‌ای دیگر
  • strrep : یافتن و جایگزینی یه زیررشته در یک رشته دیگر
  • strsplit : جداسازی رشته در یک بازه مشخص
  • strtok : رشته را توکن‌بندی می‌کند (به بخش‌های مشخص تقسیم می‌کند).
  • validatestring : بررسی اعتبار رشته‌ی متنی (مثلا آیا یک کلمه یا مشابه آن در یک رشته وجود دارد یا خیر)
  • symvar: تشخیص متغییرهای سمبولیک در یک عبارت
  • regexp : تطبیق عبارات منظم در یک متن (حساس به حروف کوچک و بزرگ)
  • regexpi : تطبیق عبارات منظم در یک متن (غیرحساس به حروف کوچک و بزرگ)
  • regexpprep : جایگزینی رشته با استفاده از عبارات منظم در متن
  • regexptranslate : ترجمه‌ی رشته به یک عبارت منظم در متن (عبارت منظم توسط شما به ورودی داده می‌شود مثلا می‌توانید بگویید کلماتی که با حرف c شروع شوند و به حرف d ختم شوند.)

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

  • strcmp : مقایسه دو رشته (حساس به حروف کوچک و بزرگ)
  • strcmpi : مقایسه دو رشته (غیرحساس به حروف کوچک و بزرگ)
  • strncmp : مقایسه n کاراکتر اول دو رشته (حساس به حروف کوچک و بزرگ)
  • strncmpi : مقایسه n کاراکتر اول دو رشته (غیرحساس به حروف کوچک و بزرگ)

توابع تغییر دادن رشته‌ها

  • deblank : حذف فضای خالی انتهای رشته
  • strtrim : حذف فضای خالی از ابتدا و انتهای رشته‌ها
  • lower : تبدیل رشته‌ها به حروف کوچک
  • upper : تبدیل رشته‌ها به حروف بزرگ
  • strjust : جاستیفای کردن (تنظیم فاصله گذاری) آرایه‌ی کاراکترها

مثال‌هایی از توابع رشته‌ها

در ادامه به بررسی چند مثال کاربردی از توابع مذکور می‌پردازیم.

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

در این مثال یک آرایه‌ی عددی یک در پنج داریم که آن را با تغییرات گوناگون در یک رشته پرینت می‌کنیم.

مشاهده نتیجه:

متصل کردن رشته‌ها

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

مشاهده نتیجه:

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

یک فایل اسکریپت مانند زیر ایجاد کنید:

در این مثال در بخش اول تابع strrep در هشتمین دانش آموز، عبارت Reva را با Poulomia تعویض می‌کند. و با تابع strtok نام دانش‌آموزان را نشان می‌دهد. مشاهده نتایج:

مقایسه رشته‌ها در متلب

یک فایل اسکریپت مانند زیر ایجاد کنید:

قطعه کد بالا بررسی می‌کند اگر دو رشته برابر بودند، یا نا برابر بودند، اعلام می‌کند:
تیم محتوایی فنولوژی
تیم محتوایی فنولوژی
گروهی از متخصصان حوزه‌های مختلف
عضویت
اطلاع از
0 دیدگاه‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.