متلب
پارادایم برنامهنویسی | چندالگویی: تابعی، دستوری، رویهای، شیءگرا، آرایهای |
---|---|
طراحی شده توسط | کلیو مولر |
توسعهدهنده | متورکس |
ظهوریافته در | اواخر دهه ۱۹۷۰ |
انتشار پایدار | R2024b[۱]
/ ۱۲ سپتامبر ۲۰۲۴ |
پویا، کمزور | |
وبگاه | |
متأثر از | |
تأثیر گذاشته بر | |
توسعهدهنده(ها) | متورکس |
---|---|
انتشار اولیه | ۱۹۸۴ |
انتشار پایدار | R2024b[۱]
/ ۱۲ سپتامبر ۲۰۲۴ |
نوشتهشده با | C/C++، جاوا |
سیستمعامل | ویندوز، مکاواس، و لینوکس[۱۶] |
پلتفرم | IA-32 ،x86-64 |
نوع | محاسبات عددی |
مجوز | نرمافزار مالکیتی، نرمافزار تجاری |
وبگاه |
مَتلب (به انگلیسی: MATLAB) یک محیط نرمافزاری برای انجام محاسبات عددی و یک زبان برنامهنویسی نسل چهارم است. واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامهنویسی مورد نظر است که از ترکیب دو واژهٔ MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شدهاست. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته میشود.
کار کردن با متلب بسیار ساده است. در حقیقت تمام دادهها در متلب به شکل یک ماتریس ذخیره میشوند. برای مثال یک عدد (اسکالر) به شکل یک ماتریس ۱*۱ ذخیره میشود. یک رشته مانند «Whale is the biggest animal» به شکل ماتریسی با یک سطر و چندین ستون (که تعداد ستونها به تعداد کاراکترهاست) ذخیره میشود. حتی یک تصویر به شکل یک ماتریس سه بعدی ذخیره میگردد که بُعد اول و دوم آن برای تعیین مختصات نقاط و بُعد سوم آن برای تعیین رنگ نقاط استفاده میشود. فایلهای صوتی نیز در متلب به شکل ماتریسهای تک ستون (بردارهای ستونی) ذخیره میشوند؛ بنابراین جای تعجب نیست که متلب مخفف عبارت آزمایشگاه ماتریس باشد.
علاوه بر توابع فراوانی که خود متلب دارد، برنامهنویس نیز میتواند توابع جدید تعریف کند.
ساخت متلب امکانپذیر است. این قابلیت، ارتباط بهتری را میان برنامههای کاربردی نوشتهشده با متلب و کاربران برقرار میکند.
متلب که از محصولات شرکت متورکس است، برای گروههای مختلف مهندسان رشتههای مختلف از جمله مهندسی برق، مکانیک، رایانه و… کاربرد بسیاری دارد.
تاریخچه
[ویرایش]کلیو مولر (به انگلیسی: Cleve Moler)، رئیس بخش علوم کامپیوتر در دانشگاه نیو مکزیکو، در اواخر دهه ۱۹۷۰ شروع به توسعه متلب کرد. او این برنامه را طراحی کرد تا به دانشآموزانش اجازه دسترسی به LINPACK و EISPACK بدون نیاز به یادگیری Fortran را بدهد. این موضوع به زودی به سایر دانشگاهها گسترش یافت و مخاطبان علاقهمندی در جامعه ریاضی کاربردی پیدا کرد. مهندس جک لیتل، در طی دیدار با مولر از دانشگاه استنفورد در سال ۱۹۸۳ با متلب آشنا شد. او با تشخیص پتانسیل تجاری متلب، تصمیم به همکاری با مولر گرفت. آنها در سال ۱۹۸۴ متلب را منتشر کردند و متورکس را در سال ۱۹۸۴ تأسیس کردند. در سال ۲۰۰۰، متلب بازنویسی شد تا از مجموعه جدیدتر کتابخانه برای دستکاری ماتریس، استفاده شود. متلب برای اولین بار توسط محققان و شاغلان در مهندسی کنترل، تخصص Little's، استفاده میشد، اما به سرعت در بسیاری از حوزهها گسترش یافت. هم چنین در آموزش به ویژه آموزش جبر خطی، تحلیل عددی و در پردازش تصویر مورد استفاده قرار میگیرد.[۱۷]
شرکت سازنده
[ویرایش]شرکت سازنده متلب شرکت متورکس نام دارد. این شرکت در سال ۱۹۸۴ بنیان نهاده شد و هماکنون دارای بیش از ۲۰۰۰ نفر پرسنل است. دفتر مرکزی این شرکت در شهر ناتیک در ایالت ماساچوست آمریکا قرار دارد.[۱۸]
قدرت متلب
[ویرایش]هسته متلب برای سرعت و کارایی بالا به زبان سی نوشته شدهاست ولی رابط گرافیکی آن به زبان جاوا پیادهسازی گشتهاست.
برنامههای متلب اکثراً متنباز هستند و در واقع متلب (مانند بیسیک) مفسر (رایانه) است نه کامپایلر. قدرت متلب از انعطافپذیری آن و راحت بودن کار با آن ناشی میشود، همچنین شرکت سازنده و گروههای مختلف، از جمله دانشگاههای سرتاسر جهان و برخی شرکتهای مهندسی هر ساله جعبهابزارهای خاص-کاربردی به آن میافزایند که باعث افزایش کارایی و محبوبیت آن شدهاست. فهرستی از این جعبهابزارها در زیر آمدهاست:
- سیمیولینک، ابزاری برای شبیهسازی سامانهها به صورت مجرد
- جعبهابزار مخابرات متلب، توابع و ابزارهای محاسبات مهندسی مخابرات
- جعبهابزار کنترل متلب، توابع و ابزارهای محاسبات مهندسی کنترل
- جعبهابزار فازی متلب، توابع و ابزارهای محاسبات فازی
- جعبهابزار محاسبات متلب، توابع و ابزارهای محاسبات عددی
- جعبهابزار تخمین متلب، توابع و ابزارهای محاسبات بحث تخمین سیستم در مهندسی کنترل
- جعبهابزار آمار متلب، توابع و ابزارهای محاسبات آمار
- جعبهابزار جمعآوری داده متلب، توابع و ابزارهای جمعآوری داده
- جعبهابزار شبکه عصبی متلب، توابع و ابزارهای محاسبات شبکه عصبی
- جعبهابزار پردازش تصویر متلب، توابع و ابزارهای محاسبات پردازش تصویر
- جعبهابزار پردازش صوت متلب، توابع و ابزارهای محاسبات پردازش صوت
- جعبهابزار احتمالات متلب
- جعبهابزار محاسبات سیمبولیک متلب
- جعبهابزار کارگاه بیدرنگ متلب، توابع و ابزارهای محاسبات سامانههای بیدرنگ
- امکان اتصال به نرم افزار های طراحی و کنترل مدار
اندازهگیری دقیق
[ویرایش]در نمایش ۳ بعدی سطح پشت سکه ۱ یورویی که توسط میکروسکوپ همکانون نور سفید به ثبت رسیدهاست، تصویر جلوهٔ یکی از ۱۲ ستاره برجستهٔ سکه به وسیله میکروسکوپ به تصویر کشیده شدهاست. همچنین در این نمودار ۳ بعدی، طول، عرض و میزان برجستگی ستاره اندازهگیری شدهاست. محدودهٔ مختصات سطحی سنجش میکروسکوپ، ۸۰۰ در ۸۰۰ میکرومتر یا ۰٫۸ در ۰٫۸ میلیمتر بین دو محور x و y میباشد. بلندی محور مختصات نیز ۶۰ میکرومتر معادل ۰٫۰۶ میلیمتر تعبیه شدهاست. رنگها و گرافیک موجود در نگاره و تناسب آن با محور رنگی ارتفاع، با هدف درک کمیت برجستگی ستاره و بلندی آن توسط نرمافزار متلب ایجاد شدهاست.
انتقادات
[ویرایش]مهمترین انتقادات از متلب به خاطر متن بازنبودن و گران بودن آن است که امکان اجرای کدهای نوشتهشده در متلب را در هر محیطی محدود میکند. متلب اساساً برای کار با ماتریسها طراحی شدهاست و استفاده از ساختارهای دیگر داده سرعت اجرای کد را کم میکند. برای نصب کردن متلب نیاز به نصب برخی بستههای کامپایل شدهاست که در برخی سیستم عاملها ایجاد مشکل میکند. همچنین ارتباط دادن کدهای نوشتهشده در زبانهای دیگر میتواند سخت باشد.
از دیگر انتقاداتی که به این نرمافزار میشود، عدم توانایی آن در انجام محاسبات در لحظه (Real Time) است. به عنوان مثال این نرمافزار توانایی نمایش دادههای یک شتاب سنج که بوسیلهٔ وایفای به آن وصل شده را در لحظه ندارد.
مهمترین رقبای متلب
[ویرایش]متلب رقیبان زیادی دارد و نرمافزارهای مشابه بسیاری میتوانند کارهای مشابه نرمافزار متلب را انجام دهند و از آن جمله میتوان نرمافزارهای زیر را نام برد:
نرمافزارهای مالکانه:
نرمافزارهای آزاد و متنباز:
تفاوت متلب با میپل مثمتیکا پایتون
[ویرایش]میپل
[ویرایش]میپل، یکی از نرمافزارهای مشهور ریاضی است. نام ان به معنی درخت افرا (درختی شبیه درخت چنار) است که عکس برگ آن بر پرچم کاناداست. دلیل این نامگذاری نوشته شدن ان در دانشگاه واترلو کاناداست. میپل نرمافزاری قوی در زمینه ریاضیات است که کار عملی ۱۰۰ دانشجو است. راهنمای قوی میپل، کار با ان را راحت کرده جدیدترین نگارش آن، نگارش ۲۰۱۶۰۲ میباشد. حافظهٔ کامپیوتر، عبارات جبری و منطق را در خود ذخیره میکند و بعد از آن توسط میپل پردازش شده و حل میگردد. طراحی الگوریتمهای ریاضی یعنی برنامهنویسی ریاضی از ویژگیهای میپل است. وقتی میپل اولین بار هنگام اجرا بار میشود، فقط هسته که پایه و اساس سیستم میپل و شامل دستورهای بنیادی و اولیه میباشد، به حافظه منتقل میشود. هسته از کدهایی به زبان C نوشته شده که تقریباً ۱۰ درصد کل سیستم میپل را دربر میگیرد. به منظور سرعت و کارایی بیشتر هستهٔ کوچک نگه داشته شدهاست. ۹۰ درصد بقیه به زبان میپل نوشته شدهاست که در کتابخانههای میپل قرار دارد.
فرق بین متلب و میپل
[ویرایش]متلب یک محیط برنامهنویسی در حوزهٔ ریاضیات و مهندسی است که بیشتر مناسب مهندسی میباشد چون محاسبات آن با استفاده از تقریب سازیها و تخمینهای ریاضیست؛ بنابراین در کارهای ریاضی کاربردی که اصل کار همان ساختن تقریبهاست، ممکن است زیاد مناسب نباشد به علاوه برای کار با آن، باید آموزش دید و برنامهنویسی در آن محیط را یادگرفت. میپل یک نرمافزار فوق پیشرفته ریاضی است که هم در ریاضیات و هم در مهندسی کاربرد دارد و به راحتی به محیطهای برنامهنویسی دیگر مثل C یا C++ مرتبط میشود. برای حل تمرین و یا آموزش ریاضی و محاسبات میتوان به ان یادداشت و انیمیشن اضافه کرد. محاسبات نمادین و محض مثل حدگیری و مسایل جبر را به راحتی انجام میدهد؛ و تمام مراحل حل را به کاربر نشان میدهد. نیاز به آموزش خاصی نخواهد داشت.
مثمتیکا
[ویرایش]مثمتیکا، یک نرمافزار جبریست که توابع مورد نیاز در ریاضی و علوم طبیعی را در اختیار استفاده کنندگان قرار میدهد. شرکت ولفرم ریسرچ آن را نوشتهاست. مهمترین قابلیتهای این نرمافزار عبارتند از:
- یک سامانهٔ رایانهای جبری برای بررسی نمادین معادلهها
- یک نرمافزار عددی برای حل عددی معادلهها
- یک نرمافزار اماری برای حل مسایل اماری
- توابع ترسیمی و تجسمی برای رسم نمودارها توسط نرمافزار پابلیکون
- یک زبان برنامهنویسی
رقیبان اصلی مثمتیکا:
در جبر: مثکد - میپل - مکسیما - درایو
در تحلیل عددی: متلب
متمتیکا درموارد زیر قابل استفاده است:
- استفاده بهینهتر نسبت به ماشین حساب برای انجام محاسبات عددی نمادی و اعلان نتایج
- محیطی واقعی برای عملیات روی توابع و رابطهها
- زبان سطح بالای برنامهنویسی برای نوشتن برنامههای کوچک و بزرگ
- محیطی مناسب برای پردازش و آنالیز دادهها
- محیطی مناسب برای ترکیب متن صدا گرافیک انیمیشن
متمتیکا به دو صورت عمومی و تخصصی در دسترس است و نوع تخصصی آن، بستههایی دارد که به کمک آن میتوان روشهای تخصصی علوم را انجام داد.
تفاوت مثمتیکا و میپل
[ویرایش]مثمتیکا و میپل فرق زیادی با یکدیگر ندارند و با یادگیری یکی یادگیری دیگری آسان است. محیط کاربری یا اینترفیس، مهمترین تفاوت این دو برنامه میباشد. مثمتیکا، فقط یک محیط برای فرمولنویسی دارد و برای رسم هر شکلی باید به کدنویسی تسلط داشته باشیم اما در میپل دو محیط کاربری داریم که در محیط اصلی به کدنویسی نیاز نداریم و فرمولهای از پیش نوشته شده موجود میباشد. میپل علاوه بر این محیط، محیطی مانند مثمتیکا دارد که در آن به کدنویسی نیاز داریم. بهطور خلاصه زمان محاسبه در دو نرمافزار تقریباً برابر است، زمان بارگذاری هر دو نرمافزار در محیط کدنویسی یکسان است و حافظه زیادی را اشغال نمیکند اما محیط اصلی میپل، محیطی که به کدنویسی احتیاج ندارد، علاوه بر اینکه زمان بیشتری را میطلبد، حافظهٔ بیشتری را نیز اشغال میکند و از این نظر این محیط از میپل، مناسب دستگاههای قدیمی نیست.
پایتون
[ویرایش]پایتون، زبان برنامهنویسی پایتون قدرتمند و گستردهاست. یعنی کتابخانههای زیادی برای ان نوشته شده و با دانلود این کتابخانهها میتوان از کدنویسیهای بیهوده اجتناب کرد.
یک زبان برنامهنویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است، که خیدو فان روسوم، آن را طراحی کردهاست؛ و اولین بار در سال ۱۹۹۱ منتشر شدهاست. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است و نویسههای فاصله خالی در آن معنادار هستند و مکرر استفاده میشوند. ساختار زبانی و دیدگاه شیءگرا در پایتون به گونهای طراحی شدهاست که به برنامهنویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژههای کوچک و بزرگ میدهد.
جستارهای وابسته
[ویرایش]منابع
[ویرایش]- ↑ ۱٫۰ ۱٫۱ "MathWorks Announces Release 2024b of MATLAB and Simulink". Retrieved 15 September 2024.
- ↑ "Protect Your Source Code". MathWorks. Retrieved November 1, 2019.
- ↑ "MEX Platform Compatibility". MathWorks. Retrieved November 1, 2019.
- ↑ "MAT-File Versions". MathWorks. Retrieved November 1, 2019.
- ↑ "Save Figure to Reopen in MATLAB Later". MathWorks. Retrieved November 1, 2019.
- ↑ "Live Code File Format (.mlx)". MathWorks. Retrieved November 1, 2019.
- ↑ "MATLAB App Designer". MathWorks. Retrieved November 1, 2019.
- ↑ "Toolbox Distribution". MathWorks. Retrieved November 1, 2019.
- ↑ "MATLAB App Installer File". MathWorks. Retrieved November 1, 2019.
- ↑ "Support Package Installation". MathWorks. Archived from the original on 6 اكتبر 2014. Retrieved November 1, 2019.
{{cite web}}
: Check date values in:|archive-date=
(help) - ↑ "An interview with CLEVE MOLER Conducted by Thomas Haigh On 8 and 9 March, 2004 Santa Barbara, California" (PDF). Computer History Museum. Archived from the original (PDF) on December 27, 2014. Retrieved December 6, 2016.
So APL, Speakeasy, LINPACK, EISPACK, and PL0 were the predecessors to MATLAB.
- ↑ Bezanson, Jeff; Karpinski, Stefan; Shah, Viral; Edelman, Alan (February 14, 2012). "Why We Created Julia". Julia Language. Retrieved December 1, 2016.
- ↑ Eaton, John W. (May 21, 2001). "Octave: Past, Present, and Future" (PDF). Texas-Wisconsin Modeling and Control Consortium. Archived from the original (PDF) on August 9, 2017. Retrieved December 1, 2016.
- ↑ "History". Scilab. Archived from the original on December 1, 2016. Retrieved December 1, 2016.
- ↑ "The L-Shaped Membrane". MathWorks. 2003. Retrieved February 7, 2014.
- ↑ "System Requirements and Platform Availability". MathWorks. Retrieved August 14, 2013.
- ↑ «MATLAB Programming Language, Programming with MATLAB, Programming Language MATLAB, Learn MATLAB Online». www.altiusdirectory.com. بایگانیشده از اصلی در ۳ ژانویه ۲۰۱۷. دریافتشده در ۲۰۱۸-۰۹-۰۵.
- ↑ The MathWorks - MATLAB and Simulink for Technical Computing
پیوند به بیرون
[ویرایش]
- صفحهٔ خانگی
- 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 بایگانیشده در ۱۸ مارس ۲۰۰۶ توسط Wayback Machine
- comp.soft-sys.matlab
- Share MATLAB code snippets online
matlab– a MATLAB Central game that challenges and expands your knowledge of MATLAB
- نرمافزار پردازش تصویر
- جبر خطی
- جبر خطی عددی
- جبر محاسباتی
- رایانش موازی
- زبانهای برنامهنویسی آرایهای
- زبانهای برنامهنویسی آماری
- زبانهای برنامهنویسی داده محور
- زبانهای برنامهنویسی سطح بالا
- زبانهای برنامهنویسی عددی
- زبانهای برنامهنویسی ماشینی پویا
- نرمافزارهای ایریکس
- نرمافزارهای تجاری اختصاصی برای لینوکس
- نرمافزارهای تحلیل عددی لینوکس
- نرمافزارهای تحلیل عددی ویندوز
- نرمافزارهای چند سکویی مالکیتی
- نرمافزارهای چندسکویی
- نرمافزارهای دادهکاوی و یادگیری ماشین
- نرمافزارهای رسم
- نرمافزارهای عددی
- نرمافزارهای مصورسازی داده
- نرمافزارهای نوشتهشده با سی