متلب

**مَتلب**  یک محیط نرم‌افزاری برای انجام محاسبات عددی و یک زبان برنامه‌نویسی نسل چهارم است. واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامه‌نویسی مورد نظر است که از ترکیب دو واژهٔ MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شده‌است. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته می‌شود.

کار کردن با متلب بسیار ساده است. در حقیقت تمام داده‌ها در متلب به شکل یک ماتریس ذخیره می‌شوند. برای مثال یک عدد (اسکالر) به شکل یک ماتریس ۱*۱ ذخیره می‌شود. یک رشته مانند «Whale is the biggest animal» به شکل ماتریسی با یک سطر و چندین ستون (که تعداد ستون‌ها به تعداد کاراکترهاست) ذخیره می‌شود. حتی یک تصویر به شکل یک ماتریس سه بعدی ذخیره می‌گردد که بُعد اول و دوم آن برای تعیین مختصات نقاط و بُعد سوم آن برای تعیین رنگ نقاط استفاده می‌شود. فایل‌های صوتی نیز در متلب به شکل ماتریس‌های تک ستون (بردارهای ستونی) ذخیره می‌شوند؛ بنابراین جای تعجب نیست که متلب مخفف عبارت آزمایشگاه ماتریس باشد.

علاوه بر توابع فراوانی که خود متلب دارد، برنامه‌نویس نیز می‌تواند توابع جدید تعریف کند.

ساخت متلب امکان‌پذیر است. این قابلیت، ارتباط بهتری را میان برنامه‌های کاربردی نوشته‌شده با متلب و کاربران برقرار می‌کند.

متلب که از محصولات شرکت مت‌ورکس است، برای گروه‌های مختلف مهندسان رشته‌های مختلف از جمله مهندسی برق، مکانیک، رایانه و… کاربرد بسیاری دارد.

## تاریخچه
کلیو مولر ، رئیس بخش علوم کامپیوتر در دانشگاه نیو مکزیکو، در اواخر دهه ۱۹۷۰ شروع به توسعه متلب کرد. او این برنامه را طراحی کرد تا به دانش‌آموزانش اجازه دسترسی به LINPACK و EISPACK بدون نیاز به یادگیری Fortran را بدهد. این موضوع به زودی به سایر دانشگاه‌ها گسترش یافت و مخاطبان علاقه‌مندی در جامعه ریاضی کاربردی پیدا کرد. مهندس جک لیتل، در طی دیدار با مولر از دانشگاه استنفورد در سال ۱۹۸۳ با متلب آشنا شد. او با تشخیص پتانسیل تجاری متلب، تصمیم به همکاری با مولر گرفت. آن‌ها در سال ۱۹۸۴ متلب را منتشر کردند و مت‌ورکس را در سال ۱۹۸۴ تأسیس کردند. در سال ۲۰۰۰، متلب بازنویسی شد تا از مجموعه جدیدتر کتابخانه برای دستکاری ماتریس، استفاده شود. متلب برای اولین بار توسط محققان و شاغلان در مهندسی کنترل، تخصص Little's، استفاده می‌شد، اما به سرعت در بسیاری از حوزه‌ها گسترش یافت. هم چنین در آموزش به ویژه آموزش جبر خطی، تحلیل عددی و در پردازش تصویر مورد استفاده قرار می‌گیرد.

## شرکت سازنده
شرکت سازنده متلب شرکت مت‌ورکس نام دارد. این شرکت در سال ۱۹۸۴ بنیان نهاده شد و هم‌اکنون دارای بیش از ۲۰۰۰ نفر پرسنل است. دفتر مرکزی این شرکت در شهر ناتیک در ایالت ماساچوست آمریکا قرار دارد.

## قدرت متلب
thumb
هسته متلب برای سرعت و کارایی بالا به زبان سی نوشته شده‌است ولی رابط گرافیکی آن به زبان جاوا پیاده‌سازی گشته‌است.

برنامه‌های متلب اکثراً متن‌باز هستند و در واقع متلب (مانند بیسیک) مفسر (رایانه) است نه کامپایلر. قدرت متلب از انعطاف‌پذیری آن و راحت بودن کار با آن ناشی می‌شود، همچنین شرکت سازنده و گروه‌های مختلف، از جمله دانشگاه‌های سرتاسر جهان و برخی شرکت‌های مهندسی هر ساله جعبه‌ابزارهای خاص-کاربردی به آن می‌افزایند که باعث افزایش کارایی و محبوبیت آن شده‌است. فهرستی از این جعبه‌ابزارها در زیر آمده‌است:
* سیمیولینک، ابزاری برای شبیه‌سازی سامانه‌ها به صورت مجرد
* جعبه‌ابزار مخابرات متلب، توابع و ابزارهای محاسبات مهندسی مخابرات
* جعبه‌ابزار کنترل متلب، توابع و ابزارهای محاسبات مهندسی کنترل
* جعبه‌ابزار فازی متلب، توابع و ابزارهای محاسبات فازی
* جعبه‌ابزار محاسبات متلب، توابع و ابزارهای محاسبات عددی
* جعبه‌ابزار تخمین متلب، توابع و ابزارهای محاسبات بحث تخمین سیستم در مهندسی کنترل
* جعبه‌ابزار آمار متلب، توابع و ابزارهای محاسبات آمار
* جعبه‌ابزار جمع‌آوری داده متلب، توابع و ابزارهای جمع‌آوری داده
* جعبه‌ابزار شبکه عصبی متلب، توابع و ابزارهای محاسبات شبکه عصبی
* جعبه‌ابزار پردازش تصویر متلب، توابع و ابزارهای محاسبات پردازش تصویر
* جعبه‌ابزار پردازش صوت متلب، توابع و ابزارهای محاسبات پردازش صوت
* جعبه‌ابزار احتمالات متلب
* جعبه‌ابزار محاسبات سیمبولیک متلب
* جعبه‌ابزار کارگاه بی‌درنگ متلب، توابع و ابزارهای محاسبات سامانه‌های بی‌درنگ
*امکان اتصال به نرم افزار های طراحی و کنترل مدار

## اندازه‌گیری دقیق
بندانگشتی|چپ|200px|اندازه‌گیری میکروسکوپی با نرم‌افزار متلب
در نمایش ۳ بعدی سطح پشت سکه ۱ یورویی که توسط میکروسکوپ هم‌کانون نور سفید به ثبت رسیده‌است، تصویر جلوهٔ یکی از ۱۲ ستاره برجستهٔ سکه به وسیله میکروسکوپ به تصویر کشیده شده‌است. همچنین در این نمودار ۳ بعدی، طول، عرض و میزان برجستگی ستاره اندازه‌گیری شده‌است. محدودهٔ مختصات سطحی سنجش میکروسکوپ، ۸۰۰ در ۸۰۰ میکرومتر یا ۰٫۸ در ۰٫۸ میلی‌متر بین دو محور x و y می‌باشد. بلندی محور مختصات نیز ۶۰ میکرومتر معادل ۰٫۰۶ میلی‌متر تعبیه شده‌است. رنگ‌ها و گرافیک موجود در نگاره و تناسب آن با محور رنگی ارتفاع، با هدف درک کمیت برجستگی ستاره و بلندی آن توسط نرم‌افزار متلب ایجاد شده‌است.

## انتقادات
مهمترین انتقادات از متلب به خاطر متن بازنبودن و گران بودن آن است که امکان اجرای کدهای نوشته‌شده در متلب را در هر محیطی محدود می‌کند. متلب اساساً برای کار با ماتریس‌ها طراحی شده‌است و استفاده از ساختارهای دیگر داده سرعت اجرای کد را کم می‌کند. برای نصب کردن متلب نیاز به نصب برخی بسته‌های کامپایل شده‌است که در برخی سیستم عامل‌ها ایجاد مشکل می‌کند. همچنین ارتباط دادن کدهای نوشته‌شده در زبان‌های دیگر می‌تواند سخت باشد.

از دیگر انتقاداتی که به این نرم‌افزار می‌شود، عدم توانایی آن در انجام محاسبات در لحظه (Real Time) است. به عنوان مثال این نرم‌افزار توانایی نمایش داده‌های یک شتاب سنج که بوسیلهٔ وای‌فای به آن وصل شده را در لحظه ندارد.

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

نرم‌افزارهای مالکانه:
* مثمتیکا
* مث‌کد
* میپل
* مکسیما

نرم‌افزارهای آزاد و متن‌باز:
* گنو آکتیو
* سایلب
* SageMath

## تفاوت متلب با میپل مثمتیکا پایتون
### میپل
**[[میپل]]**، یکی از نرم‌افزارهای مشهور ریاضی است. نام ان به معنی درخت افرا (درختی شبیه درخت چنار) است که عکس برگ آن بر پرچم کاناداست.
دلیل این نام‌گذاری نوشته شدن ان در دانشگاه واترلو کاناداست. میپل نرم‌افزاری قوی در زمینه ریاضیات است که کار عملی ۱۰۰ دانشجو است.
راهنمای قوی میپل، کار با ان را راحت کرده جدیدترین نگارش آن، نگارش ۲۰۱۶۰۲ می‌باشد.
حافظهٔ کامپیوتر، عبارات جبری و منطق را در خود ذخیره می‌کند و بعد از آن توسط میپل پردازش شده و حل می‌گردد. طراحی الگوریتم‌های ریاضی یعنی برنامه‌نویسی ریاضی از ویژگی‌های میپل است. وقتی میپل اولین بار هنگام اجرا بار می‌شود، فقط هسته که پایه و اساس سیستم میپل و شامل دستورهای بنیادی و اولیه می‌باشد، به حافظه منتقل می‌شود. هسته از کدهایی به زبان C نوشته شده که تقریباً ۱۰ درصد کل سیستم میپل را دربر می‌گیرد. به منظور سرعت و کارایی بیشتر هستهٔ کوچک نگه داشته شده‌است. ۹۰ درصد بقیه به زبان میپل نوشته شده‌است که در کتابخانه‌های میپل قرار دارد.

### فرق بین متلب و میپل
متلب یک محیط برنامه‌نویسی در حوزهٔ ریاضیات و مهندسی است که بیشتر مناسب مهندسی می‌باشد چون محاسبات آن با استفاده از تقریب سازی‌ها و تخمین‌های ریاضیست؛ بنابراین در کارهای ریاضی کاربردی که اصل کار همان ساختن تقریب‌هاست، ممکن است زیاد مناسب نباشد به علاوه برای کار با آن، باید آموزش دید و برنامه‌نویسی در آن محیط را یادگرفت. میپل یک نرم‌افزار فوق پیشرفته ریاضی است که هم در ریاضیات و هم در مهندسی کاربرد دارد و به راحتی به محیط‌های برنامه‌نویسی دیگر مثل C یا C++ مرتبط می‌شود. برای حل تمرین و یا آموزش ریاضی و محاسبات می‌توان به ان یادداشت و انیمیشن اضافه کرد. محاسبات نمادین و محض مثل حدگیری و مسایل جبر را به راحتی انجام می‌دهد؛ و تمام مراحل حل را به کاربر نشان می‌دهد. نیاز به آموزش خاصی نخواهد داشت.

### مثمتیکا
**[[مثمتیکا]]**، یک نرم‌افزار جبریست که توابع مورد نیاز در ریاضی و علوم طبیعی را در اختیار استفاده کنندگان قرار می‌دهد. شرکت ولفرم ریسرچ آن را نوشته‌است. مهمترین قابلیت‌های این نرم‌افزار عبارتند از:
* یک سامانهٔ رایانه‌ای جبری برای بررسی نمادین معادله‌ها
* یک نرم‌افزار عددی برای حل عددی معادله‌ها
* یک نرم‌افزار اماری برای حل مسایل اماری
* توابع ترسیمی و تجسمی برای رسم نمودارها توسط نرم‌افزار پابلیکون
* یک زبان برنامه‌نویسی

رقیبان اصلی مثمتیکا:
در جبر: مث‌کد - میپل - مکسیما - درایو 
در تحلیل عددی: متلب 
متمتیکا درموارد زیر قابل استفاده است: 
* استفاده بهینه‌تر نسبت به ماشین حساب برای انجام محاسبات عددی نمادی و اعلان نتایج
* محیطی واقعی برای عملیات روی توابع و رابطه‌ها
* زبان سطح بالای برنامه‌نویسی برای نوشتن برنامه‌های کوچک و بزرگ
* محیطی مناسب برای پردازش و آنالیز داده‌ها
* محیطی مناسب برای ترکیب متن صدا گرافیک انیمیشن

متمتیکا به دو صورت عمومی و تخصصی در دسترس است و نوع تخصصی آن، بسته‌هایی دارد که به کمک آن می‌توان روش‌های تخصصی علوم را انجام داد.

### تفاوت مثمتیکا و میپل

مثمتیکا و میپل فرق زیادی با یکدیگر ندارند و با یادگیری یکی یادگیری دیگری آسان است.
محیط کاربری یا اینترفیس، مهمترین تفاوت این دو برنامه می‌باشد.
مثمتیکا، فقط یک محیط برای فرمول‌نویسی دارد و برای رسم هر شکلی باید به کدنویسی تسلط داشته باشیم اما در میپل دو محیط کاربری داریم که در محیط اصلی به کدنویسی نیاز نداریم و فرمول‌های از پیش نوشته شده موجود می‌باشد.
میپل علاوه بر این محیط، محیطی مانند مثمتیکا دارد که در آن به کدنویسی نیاز داریم.
به‌طور خلاصه زمان محاسبه در دو نرم‌افزار تقریباً برابر است، زمان بارگذاری هر دو نرم‌افزار در محیط کدنویسی یکسان است و حافظه زیادی را اشغال نمی‌کند اما محیط اصلی میپل، محیطی که به کدنویسی احتیاج ندارد، علاوه بر اینکه زمان بیشتری را می‌طلبد، حافظهٔ بیشتری را نیز اشغال می‌کند و از این نظر این محیط از میپل، مناسب دستگاه‌های قدیمی نیست.

### پایتون
**[[پایتون]]**، زبان برنامه‌نویسی پایتون قدرتمند و گسترده‌است. یعنی کتابخانه‌های زیادی برای ان نوشته شده و با دانلود این کتابخانه‌ها می‌توان از کدنویسی‌های بیهوده اجتناب کرد.

یک زبان برنامه‌نویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است، که خیدو فان روسوم، آن را طراحی کرده‌است؛ و اولین بار در سال ۱۹۹۱ منتشر شده‌است. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است و نویسه‌های فاصله خالی در آن معنادار هستند و مکرر استفاده می‌شوند. ساختار زبانی و دیدگاه شیءگرا در پایتون به گونه‌ای طراحی شده‌است که به برنامه‌نویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژه‌های کوچک و بزرگ می‌دهد.

## جستارهای وابسته
* سیمیولینک
* موپد

## منابع

## پیوند به بیرون

* صفحهٔ خانگی
* MATLAB Central the MATLAB user community
* The MATLAB category at the Open Directory Project
* Additional information about the history of and inspiration for MATLAB, written by Cleve Moler 
* [news://comp.soft-sys.matlab comp.soft-sys.matlab]
* Share MATLAB code snippets online
matlab– a MATLAB Central game that challenges and expands your knowledge of MATLAB
* LiteratePrograms (MATLAB) 
* MATLAB Tutorials from The MathWorks
* Free Alternatives to MATLAB

رده:جبر خطی
رده:جبر خطی عددی
رده:جبر محاسباتی
رده:رایانش موازی
رده:زبان‌های برنامه‌نویسی آرایه‌ای
رده:زبان‌های برنامه‌نویسی آماری
رده:زبان‌های برنامه‌نویسی داده محور
رده:زبان‌های برنامه‌نویسی سطح بالا
رده:زبان‌های برنامه‌نویسی عددی
رده:زبان‌های برنامه‌نویسی ماشینی پویا
رده:نرم‌افزار پردازش تصویر
رده:نرم‌افزارهای ایریکس
رده:نرم‌افزارهای تجاری اختصاصی برای لینوکس
رده:نرم‌افزارهای تحلیل عددی لینوکس
رده:نرم‌افزارهای تحلیل عددی ویندوز
رده:نرم‌افزارهای چند سکویی مالکیتی
رده:نرم‌افزارهای چندسکویی
رده:نرم‌افزارهای داده‌کاوی و یادگیری ماشین
رده:نرم‌افزارهای رسم
رده:نرم‌افزارهای عددی
رده:نرم‌افزارهای مصورسازی داده
رده:نرم‌افزارهای نوشته‌شده با سی