انواع داده ها در متلب را بشناسید
در همه زبان های برنامه نویسی و نرم افزارهایی که بر اساس این زبان ها کار می کنند، یکی از بحث های مقدماتی، نوع داده هاست. انواع داده های منطقی، عددی، کاراکتری و … .
این موضوع در نرم افزار متلب هم وجود دارد. در متلب هم با انواع مختلف داده سر و کار داریم و بدون شناخت دقیق آنها، نمی توانیم ادعا کنیم که بر این نرم افزار تسلط داریم.
در این قسمت از آموزش ها، قصد داریم که انواع داده ها در متلب را به زبان ساده معرفی کنیم.
در آموزش های بعدی با استفاده از مثال های گوناگون، هر کدام از انواع داده را به صورت کامل بررسی خواهیم کرد. لینک های مربوط به آموزش های هر نوع داده را در این آموزش هم قرار داده ایم و در صورت نیاز می توانید از آنها استفاده کنید. (این آموزش ها به تدریج تکمیل می شوند.)
پیشنهاد می کنم به سایر آموزش های ما درباره متلب و سیمولینک هم سری بزنید! آموزش متلب و سیمولینک
اگر با زبان های برنامه نویسی آشنایی داشته باشید، می دانید که هر متغیری که تعریف می کنیم، یک نام و یک نوع دارد. مثلا عبارت زیر به معنی این است که یک: متغیری به نام a تعریف کرده ایم که از نوع integer است و این یعنی فقط می توانیم اعداد صحیح را داخل متغیر a بریزیم. همانطور که در عبارت زیر عدد 2 را داخل آن ریخته ایم.
int a = 2
اما در متلب به طور عادی نیازی نیست که نوع این متغیرها را تعیین کنیم.
مثلا کافیست بنویسم a=2 تا متغیری به نام a ایجاد شود و عدد 2 داخل آن ریخته شود. این برای حالت عادی بود. اما همیشه وضعیت اینقدر ساده نیست. اجازه بدهید انواع متغیرها را معرفی کنیم تا بهتر متوجه موضوع شوید.
در نمودار زیر سعی کرده ایم انواع داده ها در متلب را در کنار هم جمع آوری کنیم. ابتدا نگاهی به این نمودار بیندازید و سپس با ادامه آموزش همراه ما باشید.
داده های عددی
اول برویم سراغ انواع داده های عددی. داده های عددی همانطور که از اسمشان هم پیداست، با اعداد سر و کار دارند!
همانطور که در نمودار هم قابل مشاهده است، داده های عددی به دو نوع اعداد صحیح و اعداد اعشاری تقسیم می شوند. (یا به عبارت بهتر: دسته اول اعداد صحیح و دسته دوم همه اعداد)
اعداد صحیح
اعداد صحیح که با int نشان داده می شوند، با توجه به حداکثر بیت هایی که در حافظه اشغال می کنند، به 4 دسته تقسیم می شوند: 8، 16، 32 و 64. همانطور که می دانید، هر بایت از 8 بیت تشکیل شده است. در نتیجه انواع اعداد صحیح می توانند حداکثر 1، 2، 4 و 8 بایت اشغال کنند.
( این اشغال کردن بایت یعنی چه؟ اعداد در کامپیوتر در مبنای 2 ذخیره می شوند و این مبنا فقط شامل ارقام 0 و 1 است. در هر بیت می تواند 0 و 1 وارد شود. برای نمایش یک عدد چند بیت لازم داریم؟ طبیعی است که هر چه عدد بزرگتر باشد، تعداد ارقام بیشتری نیاز دارد و در نتیجه تعداد بیت های آن زیادتر می شود.)
برای وارد کردن اعداد کوچک بهتر است از نوعی از داده ها استفاده کنیم که تعداد بیت های کمتری را اشغال می کنند. این باعث می شود که برنامه ای که نوشته ایم، حجم کمتری را اشغال کند. در نتیجه سرعت بیشتری خواهد داشت.
اما هر کدام از این انواع داده، در چه بازه هایی می توانند اعداد را بپذیرند؟ در جدول زیر مشخص کرده ایم.
اگر یک حرف u به ابتدای کلمه int در جدول بالا اضافه شود، به نوع جدیدی از داده ها به نام اعداد صحیح بدون علامت می رسیم. (unsigned integer) باز هم در این داده ها تعداد بیت اشغال شده مشخص شده است و تنها تفاوتش با نوع قبلی این است که فقط اعداد مثبت نامنفی را می پذیرد و در نتیجه بازه اعداد مورد قبول در اعداد مثبت دو برابر می شود.
اعداد اعشاری
اما نوع دوم داده های عددی، داده های اعشاری هستند. این داده ها، بر اساس دقتی که دارند، به دو نوع Single و Double تقسیم می شوند. اعداد Single دارای دقت کمتری هستند و در عوض فضای کمتری را هم در حافظه کامپیوتر اشغال می کنند. بنابراین هر جا به دقت بالا نیاز نداشتیم، بهتر است از این نوع داده استفاده کنیم. داده عددی Single ، 32 بیت (4بایت) اشغال می کند در حالیکه داده عددی Double به 64 بیت (8بایت) فضا نیاز دارد.
داده های منطقی
در اکثر زبان های برنامه نویسی، عدد 0 بیانگر یک شرط غلط (شرطی که رعایت نشده) یا همان False است و عدد 1 بیانگر یک شرط درست یا همان true است. مثلا فرض کنید عدد 3 را در متغیر a قرار داده ایم. اگر عبارت شرطی زیر را بنویسیم، خروجی این عبارت، عدد 0 خواهد بود چون شرط رعایت نشده:
a>4
و اگر عبارت زیر را بنویسیم خروجی عبارت عدد 1 است. چون شرط برقرار است و اصطلاحا می گوییم عبارت True است.
a<4
نکته جالب این است که می توانیم مقدار خروجی این عبارت را در یک متغیر دیگر ذخیره کنیم. مثلا اگر عبارت زیر را بنویسیم:
b= (a<4)
در این صورت عدد 1 در داخل متغیر b ذخیره می شود. در این حالت متغیر b دیگر یک نوع داده عددی نیست بلکه یک داده منطقی است.
داده های کاراکتری
این داده ها شامل متن هایی می شوند که خود متن موضوعیت دارد. مثلا قرار است در یک متغیر، نام Ali را ذخیره کنید. در این صورت باید نام دلخواه را به صورت ‘Ali’ و بین یک جفت ‘ ‘ بنویسید. یعنی به صورت زیر:
’a= ‘Ali
اعداد را هم می توانیم به صورت کاراکتری وارد کنیم. در این صورت دیگر این اعداد نمی توانند در محاسبات ریاضی وارد شوند و صرفا جهت نمایش کاراکتر به کار می روند. مثلا: ’a=’2
اما این داده های کاراکتری چه کاربردهایی دارند؟ کاراکتر ها بیشتر برای دریافت برخی اطلاعات از کاربر و یا نمایش اطلاعات در خروجی به کار می روند.
مثلا فرض کنید در جایی از کاربر برنامه خواسته اید نام خود را وارد کند و او عبارت Mohsen را وارد کرده است. در این صورت این داده متنی به صورت برداری ذخیره می شود که هر حرف کلمه Mohsen در یک درایه از آن قرار گرفته است. نوع هر کدام از این درایه هم نوع char یا همان کاراکتر است.
یا فرض کنید می خواهید در خروجی یک عبارت متنی را به کاربر نمایش دهید. در این مورد هم باید از کاراکتر های استفاده کنید.
تعدادی از کاراکتر ها که در کنار یکدیگر قرار می گیرند و یک کلمه یا متن را ایجاد می کنند، یک رشته یا string را تشکیل می دهند.
آرایه های سلولی
سلول ها یا همان آرایه های سلولی برای در کنار هم قرار دادن داده هایی با نوع های مختلف در کنار هم به کار می روند.
مثلا آرایه سلولی زیر را در نظر بگیرید.
در سلول اول آن یک عدد قرار گرفته است. می دانید که هر جا یک عدد وجود داشت، در واقع یک ماتریس یک در یک موجود بوده است و آن عدد در تنها درایه ماتریس قرار گرفته است. پس در سلول اول یک ماتریس یک در یک داریم.
پیشنهاد می کنم آموزش های این بخش را هم مطالعه کنید: بردار و ماتریس در متلب
در سلول دوم یک بردار دو در یک موجود است و در سلول سوم، یک ماتریس سه در سه. در سلول چهارم حتی دیگر خبری از داده های عددی هم نیست و یک متغیر کاراکتری قرار دارد.
مشاهده می کنید که در این نوع داده می توانیم انواع مختلفی از متغیر ها را که هیچ ارتباطی به هم ندارند، در کنار هم نگهداری کنیم.
نوع وارد کردن این آرایه های سلولی و نحوه استفاده از آنها، بحث مفصلی نیاز دارد که در آموزشی دیگر به آن پرداخته ایم.
لینک های مفید:
سایت رسمی MathWorks شرکت سازنده نرم افزار متلب