مزایای متلب (Advantages of MATLAB)
متلب (MATLAB) مخفف MATrix LABoratory یا «آزمایشگاه ماتریس» است؛ برنامهای که مخصوص انجام محاسبات مهندسی و علمی طراحی شده است. متلب در ابتدا فقط برای انجام محاسبات ماتریسی ساخته شد، اما با گذشت سالها به یک سیستم محاسباتی انعطافپذیر تبدیل شده که تقریباً هر مسئلهی فنی را حل میکند.
در نسخهی پایهی متلب (بدون هیچ جعبهابزار اضافهای) بیش از ۱۰۰۰ تابع وجود دارد و جعبهابزارها (Toolbox) توابع بسیار بیشتری برای حوزههای تخصصی به آن اضافه میکنند. نکتهی مهم این است که این توابع اغلب مسائل پیچیدهای مثل حل معادلات دیفرانسیل یا معکوس کردن ماتریسها را فقط در یک مرحله حل میکنند. در زبانهای دیگر باید یا خودتان برنامههای پیچیده بنویسید یا کتابخانههای جانبی (مثل IMSL، Intel Math Kernel Library یا NAG) را تهیه کنید.
توابع داخلی متلب تقریباً همیشه از چیزی که یک مهندس بهتنهایی مینویسد بهترند، چون افراد زیادی روی آنها کار کردهاند و با مجموعهدادههای مختلف آزموده شدهاند. این توابع پایدار (robust) هستند: برای بازهی وسیعی از ورودیها نتیجهی منطقی میدهند و خطاها را هم درست مدیریت میکنند.
متلب چه نوع زبانی است؟
متلب ترکیبی از سه چیز است:
- یک زبان برنامهنویسی رویهای (Procedural)
- یک محیط توسعهی یکپارچه (IDE) شامل ویرایشگر و اشکالزدا (Debugger)
- مجموعهای بسیار غنی از توابع برای انواع محاسبات فنی
در زبان رویهای، مهندس «رویه» (Procedure) مینویسد؛ یعنی دستورالعملهای ریاضی گامبهگام برای حل مسئله. از این نظر متلب شبیه زبانهای C و Fortran است، اما کتابخانهی توابع و ابزارهای رسم نمودارش آن را در بسیاری از کاربردهای تحلیل مهندسی برتر میکند. علاوه بر این، متلب افزونههای شیءگرا هم دارد که شبیه ++C و Java هستند (در فصل ۱۲ به آن میرسیم).
مزایای اصلی متلب
متلب نسبت به زبانهای برنامهنویسی معمول برای حل مسائل فنی مزیتهای زیادی دارد. مهمترینهایش اینها هستند:
۱. سهولت استفاده (Ease of Use)
متلب یک زبان تفسیری (Interpreted) است، مثل بسیاری از نسخههای Basic، و به همین دلیل استفاده از آن بسیار ساده است. میتوانید از آن مثل یک «کاغذ پیشنویس» استفاده کنید و عبارتها را مستقیم در خط فرمان بنویسید و نتیجه را ببینید، یا برنامههای بزرگ ازقبلنوشتهشده را اجرا کنید. برنامهها را میشود با IDE داخلی بهراحتی نوشت و تغییر داد و با اشکالزدای متلب خطایابی کرد. همین سادگی باعث میشود متلب برای نمونهسازی سریع (Rapid Prototyping) برنامههای جدید ایدهآل باشد.
ابزارهای توسعهای که کار با متلب را راحت میکنند:
- ویرایشگر و اشکالزدای یکپارچه
- مستندات و راهنمای آنلاین
- مرورگر فضای کاری (Workspace Browser)
- دموهای متنوع
۲. استقلال از پلتفرم (Platform Independence)
متلب روی سیستمهای مختلفی پشتیبانی میشود؛ در زمان نگارش کتاب، روی ویندوز (۷، ۸٫۱ و ۱۰)، لینوکس و سیستمعامل مک. برنامهای که روی یکی از این پلتفرمها نوشته شود روی بقیه هم اجرا میشود و فایلهای دادهای که روی هر پلتفرم ساخته شوند، روی بقیه بهطور شفاف قابل خواندن هستند. در نتیجه اگر نیازهای شما تغییر کرد و به سیستمعامل دیگری رفتید، برنامههایتان هم همراه شما میآیند.
۳. توابع از پیش تعریفشده (Predefined Functions)
متلب مجموعهی بزرگی از توابع آماده دارد که راهحلهای آزمودهشده و بستهبندیشدهی بسیاری از کارهای پایهی فنی را در اختیار شما میگذارند. فرض کنید برنامهای مینویسید که باید آمار یک مجموعهدادهی ورودی را حساب کند. در بیشتر زبانها باید خودتان زیربرنامه یا تابع بنویسید تا میانگین، انحراف معیار، میانه و... را محاسبه کند. در متلب اینها و صدها تابع دیگر در خود زبان وجود دارند:
% یک مجموعه دادهی نمونه
data = [4 8 15 16 23 42];
m = mean(data) % میانگین
s = std(data) % انحراف معیار
md = median(data) % میانه
علاوه بر توابع داخلی، جعبهابزارهای (Toolbox) تخصصی زیادی برای حل مسائل پیچیده در حوزههای مشخص وجود دارد؛ مثلاً پردازش سیگنال، سیستمهای کنترل، مخابرات، پردازش تصویر و شبکههای عصبی. همچنین مجموعهی بزرگی از برنامههای رایگانِ ارائهشده توسط کاربران از طریق وبسایت متلب به اشتراک گذاشته میشود.
۴. رسم نمودار مستقل از دستگاه (Device-Independent Plotting)
برخلاف بیشتر زبانهای دیگر، متلب دستورهای رسم نمودار و تصویر را بهصورت داخلی دارد. نمودارها و تصاویر روی هر دستگاه خروجی گرافیکی که کامپیوتر پشتیبانی کند نمایش داده میشوند. همین ویژگی متلب را به ابزاری عالی برای مصورسازی دادههای فنی تبدیل کرده است.
۵. رابط کاربری گرافیکی (Graphical User Interface)
متلب ابزارهایی دارد که به مهندس اجازه میدهند بهصورت تعاملی برای برنامهاش یک رابط گرافیکی (GUI) بسازد و حتی اپلیکیشن وب تولید کند. با این امکان میتوان برنامههای تحلیل دادهی پیشرفتهای طراحی کرد که کاربران کمتجربه هم بتوانند از آنها استفاده کنند. (در فصل ۱۴ بهطور کامل با آن آشنا میشویم.)
۶. کامپایلرهای متلب (MATLAB Compilers)
انعطافپذیری و استقلال متلب از پلتفرم به این دلیل ممکن شده که برنامههای متلب به یک کد میانی مستقل از دستگاه به نام p-code کامپایل میشوند و این دستورها در زمان اجرا تفسیر میشوند. این روش شبیه چیزی است که Visual Basic مایکروسافت یا Java استفاده میکنند.
اما چون کد بهجای کامپایلشدن کامل «تفسیر» میشود، برنامهها گاهی کند اجرا میشدند. نسخههای جدیدتر متلب با معرفی فناوری کامپایلر JIT (Just-In-Time) این مشکل را تا حدی حل کردهاند. کامپایلر JIT بخشهایی از کد را همزمان با اجرا کامپایل میکند تا سرعت کلی بالا برود.
همچنین ابزار جداگانهای به نام MATLAB Coder وجود دارد که از کد متلب، کد قابلحمل و خوانای C و ++C تولید میکند. این کد را میشود کامپایل کرد و در برنامههای نوشتهشده با زبانهای دیگر به کار برد. برعکس، کدهای قدیمی نوشتهشده با زبانهای دیگر را هم میشود کامپایل کرد و داخل متلب استفاده کرد.
خلاصه
- متلب زبانی رویهای با افزونههای شیءگرا و محیط توسعهی یکپارچه است.
- بیش از ۱۰۰۰ تابع آزمودهشده در نسخهی پایه دارد که اغلب مسائل پیچیده را در یک مرحله حل میکنند.
- یادگیری و استفاده از آن ساده است و برای نمونهسازی سریع عالی است.
- روی ویندوز، لینوکس و مک اجرا میشود و برنامهها و دادهها بین پلتفرمها قابلانتقالاند.
- ابزارهای رسم نمودار و ساخت رابط گرافیکی داخلی دارد.
- با کامپایلر JIT و MATLAB Coder محدودیت سرعت تا حدی جبران میشود.
