توسعه دهنده نرم افزار اوران ، ورود

آموزش برنامه نویسی متلب (MATLAB) – قسمت ششم

  • آموزش برنامه نویسی متلب (MATLAB) - قسمت ششم
  • نظرات

آموزش برنامه نویسی (کدنویسی) در نرم افزار متلب – (MATLAB) – انواع داده ها در متلب – قسمت اول

مبحث جلسه ششم – انواع داده ها در متلب

در این جلسه قصد داریم به معرفی انواع داده ها در متلب بپردازیم. در قسمت های قبلی آموزش با دو نوع داده “عددی (Numeric)  و”منطقی (Logical) آشنا شدیم. برای یادآوری مجدد فرض کنیم یک ماتریس جادویی 4*4 به نام  “B” تعریف کنیم.

Magic-Matrix

چنانچه در پنجره “Workspace”  ، متغیر ذخیره شده “B” را مشاهده کنید متوجه می شوید که در قسمت” value” ، متغیر “B” یک ماتریس <4*4 double>  معرفی شده است.

workspace-2

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

  • دقت منفرد (single precision)
  • “دقت مضاعف” (double precision)

تفاوت دقت های داده های عددی در میزان اشغال فضای حافظه می باشد. در حالتی که داده عددی “دقتی منفرد” داشته باشد؛ 32 بیت از حافظه را اشغال می کند و در حالتی که ذخیره سازی با “دقت مضاعف” انجام گیرد، 64 بیت از حافظه را اشغال می کند. در واقع در حالت دقت مضاعف می توان اعداد با دقت بالاتری را ذخیره نمود. در نرم افزار متلب به صورت پیش فرض (default)، داده های عددی را با “دقت مضاعف” ذخیره می کند. برای مثال ماتریس جادویی “B” که یک ماتریس 4*4 تعریف شده است دارای 16 المان می باشد که هر کدام از المان ها با دقت “double” ذخیره می شود. بنابراین ماتریس جادویی تعریف شده  16*64=1024 بیت حافظه را اشغال می کند. به طور کلی تنها عاملی که باعث می شود از داده های با دقت منفرد استفاده کنیم صرفه جویی در حافظه است.  برای مشخص کردن نوع داده (کلاس آن) می توان از دستور “class” استفاده نمود. برای مثال می خواهیم کلاس ماتریس “B” را بیابیم. داریم:

class-3

یکی دیگر از انواع داده ها که قبلا با آن آشنا شده ایم، “داده های منطقی” (logical)  می باشد که منطق دو ارزشی را برای ما پیاده سازی می کند یعنی یا “درست” (True) و یا “غلط”(False) . برای مثال فرض کنیم اعداد از 1 تا 10 را با عملگر کولون به صورت زیر بدست می آوریم. داریم:

range-4

فرض کنیم گزاره ای مانند زیر را تعریف می کنیم. (المان هایی از “A” که بزرگتر از 4 و کوچکتر از 8 باشند) و آن را در یک متغیر جدید به نام “B” ذخیره کنیم. داریم:

logical-5

در سمت راست متغیر “B” از دو گزاره “بزرگتر” و “کوچکتر” و ترکیب عطفی (AND) با علامت “&” استفاده کرده ایم. در واقع برای تک تک اعضای “A” این گزاره ترکیبی ارزیابی شده است. برای مثال برای عضو اول رشته “A” که عدد 1 می باشد و پاسخ ارزیابی این گزاره غلط (False) یا صفر می باشد و یا برای عضو ششم رشته  “A” که عدد 6 می باشد و پاسخ ارزیابی این گزاره درست (True) یا 1 می باشد .با مشاهده متغیر “B” در “workspace” و یا استفاده از دستور “class” مشاهده می کنیم که نوع داده متغیر “B” منطقی (logical) می باشد.

از دیگر انواع داده ها در نرم افزار متلب؛ کاراکترها (characters)  و “رشته ها (strings)  می باشد. در واقع رشته ها مجموعه ای از چند کاراکتر می باشد .همیشه یادمان باشد که رشته ها (strings) را داخل گیومه \’  \’ قرار می دهیم. برای مثال فرض کنید که می خواهیم متغیری به نام  “C” ایجاد کنیم که رشته ای با عنوان  “everun.ir” باشد. (توجه کنید که این رشته دارای 9 کاراکتر می باشد) همانطور که مشاهده می شود کلاس “C” به صورت “char” تعریف شده است. داریم:

char-8

در واقع متغیر “C” یک بردار با ابعاد آن 9*1 (یک سطر و 9 ستون) می باشد که در هر ستون 1 کاراکتر از 9 کاراکتر “everun.ir” وجود دارد. برای یافتن ابعاد یک ماتریس یا بردار می توانیم از دستور “size” استفاده کنیم. برای مشخص کردن ابعاد رشته “C” داریم

size-9

بنابراین تمام عملیات ماتریسی را می توان بر روی این متغیر اعمال نمود. (آموزش عملیات ماتریسی در متلب – کلیک کنید) حالا فرض کنیم می خواهیم در متغیر “C” چند رشته (strings)  تعریف کنیم. برای مثال در سطر اول ماتریس رشته ی \’everun.ir\’  و در سطر دوم ماتریس رشته ی  \’MATLAB\’ ایجاد کنیم. داریم:

 vercat error-10

همانطور که مشاهده می کنید با یک پیغام خطا مواجه می شویم که بیانگر این است که ما می خواهیم دو رشته \’everun.ir\’ و \’MATLAB\’ را به هم الحاق کنیم (concatenate)  اما این دو رشته با هم هماهنگی ندارند و ابعاد متفاوتی دارند. به این صورت که رشته \’everun.ir\’ دارای 9 کاراکتر و رشته  \’MATLAB\’ دارای 6 کاراکتر می باشد. (یک بردار 9*1 داریم و یک بردار 6*1) که نمی توان این دو رشته با ابعاد متفاوت ماتریسی را با هم الحاق نمود. برای مثال برای حل این مشکل مجبور هستیم برای متناسب سازی ابعاد دو بردار، ابعاد رشته \’MATLAB\’  را با ایجاد فضای خالی (space) به اندازه 4 واحد اصلاح کنیم .درنتیجه با این شیوه توانستیم 2 بردار 9*1 را با هم الحاق کنیم تا یک ماتریس 9*2 بسازیم .داریم:

concatenate-strings-11

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

پاسخ دهید

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

دوازده − 1 =

Next

مقالات مرتبط