مَتلب به انگلیسی: MATLAB یک محیط نرمافزاری برای انجام محاسبات عددی و یک زبان برنامهنویسی نسل چهارم است. واژه متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامهنویسی مورد نظر است که از ترکیب دو واژه MATrix ماتریس و LABoratory آزمایشگاه ایجاد شدهاست. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته میشود.
کار کردن با ماتریسها در متلب بسیار ساده است. در حقیقت تمام دادهها در متلب به شکل یک ماتریس ذخیره میشوند. برای مثال یک عدد (اسکالر) به شکل یک ماتریس 1×1 ذخیره میشود. یک رشته مانند «Tehran is capital of Iran» به شکل ماتریسی با یک سطر و چندین ستون (که تعداد ستونها به تعداد کاراکترهاست) ذخیره میشود. حتی یک تصویر به شکل یک ماتریس سه بعدی ذخیره میگردد که بُعد اول و دوم آن برای تعیین مختصات نقاط و بُعد سوم آن برای تعیین رنگ نقاط استفاده میشود. فایلهای صوتی نیز در متلب به شکل ماتریسهای تک ستون، بردارهای ستونی ذخیره میشوند. بنابراین جای تعجب نیست که متلب مخفف عبارت آزمایشگاه ماتریس باشد.
MATLAB (مخفف “آزمایشگاه ماتریس”) یک زبان برنامه نویسی چند پارادایمی اختصاصی و محیط محاسبات عددی است که توسط MathWorks توسعه یافته است. MATLAB امکان دستکاری ماتریس، ترسیم توابع و داده ها، پیاده سازی الگوریتم ها، ایجاد رابط کاربری و رابط با برنامه های نوشته شده به زبان های دیگر را می دهد.
اگرچه MATLAB عمدتا برای محاسبات عددی در نظر گرفته شده است، اما یک جعبه ابزار اختیاری از موتور نمادین MuPAD استفاده می کند که دسترسی به توانایی های محاسبات نمادین را امکان پذیر می کند. یک بسته اضافی، Simulink، شبیه سازی گرافیکی چند حوزه ای و طراحی مبتنی بر مدل را برای سیستم های پویا و تعبیه شده اضافه می کند.
در اواخر دهه 70 میلادی، متلب توسط Cleve Moler -یکی از موسسان کمپانی خصوصی Mathworks واقع شده در ایالت ماساچوست آمریکا- توسعه و عرضه شد. او که یک استاد ریاضی بود، به منظور دسترسی آسانتر دانشجویان دانشگاه نیومکزیکو به LINPACK وEISPACK، بدون نیاز به یادگیری زبانهای برنامهنویسی دیگر مانند فرترن، متلب را ایجاد کرد. اولین برنامهای که وی با متلب نوشت، یک محاسبهگر ماتریس بود. در سال 2000 متلب بازنویسی شد و با اضافهشدن کتابخانههای کاربردی فراوان، در حوزههای مختلف صنعت، کنترل، مخابرات، پزشکی، فضانوردی و… مورد توجه و استفاده متخصصان قرار گرفت.
سیستم متلب از پنج قسمت اصلی ایجادشده است، که در اینجا به آنها اشاره می کنیم:
زبان متلب: متلب یک زبان سطح بالای ماتریس- آرایهای است ویژگیهای برنامهنویسی شی گرا را شامل میشود که میتوان با کمک آن برنامههای ساده و پیچیده را ایجاد کرد.
محیط کاری متلب: مجموعهای از ابزار و امکانات است که شما بهعنوان کاربر متلب یا برنامهنویس متلب با آنها تعامل دارید. این محیط شامل امکاناتی برای مدیریت متغیرها در فضای کاری و ابزاری جهت توسعه، مدیریت، رفع خطا و ایجاد M فایلها در برنامههای متلب میباشد.
کنترل گرافیک: همان سیستم گرافیکی متلب است که شامل دستورات سطح بالا برای تجسم دادههای دوبعدی و سهبعدی، پردازش تصویر، انیمیشن و گرافیک است. همچنین شامل دستورات سطح پایین است که به شما اجازه میدهد که ظاهر گرافیکی برنامههای خود را بهصورت سفارشی طراحی کنید.
کتابخانه توابع ریاضی متلب: مجموعه گستردهای از الگوریتمهای محاسباتی اعم از توابع ابتدایی مانند سینوس، کسینوس تا توابع پیچیده مانند ماتریس معکوس، مقادیر ویژه ماتریس و تبدیل فوریه سریع را شامل میشود.
رابط برنامههای کاربردی متلب (API): کتابخانهای است که امکان نوشتن برنامههای فرترن و C که با متلب در تعامل باشند را فراهم میکند. این رابط شامل امکاناتی نظیر فراخوانی روال از متلب (اتصال پویا)، فراخوانی متلب بهعنوان یک موتور محاسباتی و خواندن و نوشتن به فایلهای mat است.
همینطور از مزایای متلب می توان به موارد زیر اشاره کرد:
راحتی در استفاده: متلب یک زبان مفسری است که برنامه در محیط توسعه یکپارچه متلب بهراحتی نوشته، اصلاح و ایجاد میگردد. ازآنجاییکه زبان برنامهنویسی برای استفاده راحت است توسعه برنامههای جدید بهراحتی امکانپذیر است.
استقلال بستر نرمافزاری : متلب توسط بسیاری از سیستمهای کامپیوتری مختلف پشتیبانی میشود. زبان متلب توسط سیستمعاملهای لینوکس، ویندوز و مکینتاش پشتیبانی میشود.
توابع از پیش تعریفشده: متلب هم با کتابخانه گستردهای از توابع از پیش تعریفشده است که برای بسیاری از کاربردها استفاده میشود.
رسم مستقل از دستگاه : برخلاف بسیاری از زبانهای کامپیوتری دیگر، متلب دستورات بسیاری را برای رسم و تصویربرداری دارد. این تصاویر و رسمها میتواند روی هر وسیله خروجی گرافیکی که توسط کامپیوتر پشتیبانی میشود قابل نمایش باشد.
واسط گرافیکی کاربر : متلب شامل ابزاری است که به برنامهنویس اجازه میدهد که بهصورت تعاملی یک واسط گرافیکی کاربر را ایجاد نماید. با این قابلیت برنامهنویس میتواند برنامههای پیچیده تجزیه و تحلیل دادهها را طوری طراحی کند که کاربران بیتجربه نیز بتوانند بهراحتی با برنامه تعامل داشته باشند.
مهمترین انتقادات از متلب به خاطر متن بازنبودن و گران بودن آن است که امکان اجرای کدهای نوشتهشده در متلب را در هر محیطی محدود میکند. متلب اساساً برای کار با ماتریسها طراحی شدهاست و استفاده از ساختارهای دیگر داده سرعت اجرای کد را کم میکند. برای نصب کردن متلب نیاز به نصب برخی بستههای کامپایل شدهاست که در برخی سیستم عاملها ایجاد مشکل میکند. همچنین ارتباط دادن کدهای نوشتهشده در زبانهای دیگر میتواند سخت باشد.
از دیگر انتقاداتی که به این نرمافزار میشود، عدم توانایی آن در انجام محاسبات در لحظه (Real Time) است. به عنوان مثال این نرمافزار توانایی نمایش دادههای یک شتاب سنج که بوسیله وایفای به آن وصل شده را در لحظه ندارد.
متلب یک زبان برنامهنویسی سطح بالا (نزدیک به زبان انسان)، مفسری و شیگرا است. این زبان برخلاف بسیاری از زبانهای برنامهنویسی، متن باز نیست. متلب در مقایسه با رقبایش از جمله Fusion ، Mathematica و… فضای رم بیشتری مصرف میکند؛ اما از جمله مزیتهای آن میتوان به امکان گرفتن خروجی C و ++C و همچنین خروجی گرافیکی به صورت نمودار و منحنی از کدهای متلب اشاره کرد.
کدهای متلب با کمک API به راحتی با زبانهای دیگر مثل جاوا و سی ادغام میشوند و میتوان از آنها در هر بستری استفاده کرد. همچنین میتوان با نصب پکیج Hardware Support، برای ابزارهایی مانند رزبریپای، آردوینو، دستگاههای پزشکی مثل MRI و… با استفاده از متلب برنامه نوشت. شما میتوانید زبان متلب را تنها در نرمافزار متلب نوشته و اجرا کنید و اجرای آن در سایر محیطهای توسعهی برنامهنویسی امکانپذیر نیست. متلب کاربردهای گستردهای در رشتههای مهندسی، فیزیک، ریاضی و شیمی دارد.
میتوان گفت زبان قدرتمند متلب برای استفاد در کاربردهای مهندسی و محاسبات پیچیده ریاضی مناسب است اما به دلیل مصرف بالای منابع سخت افزاری برای استفادههایی مانند طراحی و توسعهی وب مناسب نیست Matlab .زبانی مفسری است و در هر بار اجرا، کدها تفسیر میشود به همین دلیل سرعت زبانهای مفسری نسبت به زبانهای کامپایلری پایینتر است اما مزایایی همچون راحتی استفاده و یادگیری، کتابخانههای کاربردی فراوان و قدرتمند و پشتیبانی توسط سیستمهای عامل محبوب Windows ، Linux و Mac موجب علاقهمندی بسیاری از برنامهنویسان به این زبان شده است.