MATLAB та його інтеграція в інші програмні додатки, ООП в MATLAB

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Основні відомості про MATLAB

MATLAB (англ. «Matrix Laboratory») термін, що відноситься до пакету прикладних програм для вирішення завдань технічних обчислень, а також до використовуваної в цьому пакеті мови програмування. MATLAB працює на більшості сучасних операційних систем, включаючи Linux, Mac OS і Microsoft Windows. MATLAB, як мова програмування, була розроблена в кінці 1970-х років з метою полегшення процесів програмування для студентів (мова розділу Simulink отримала назву візуального проектування). Нова мова була з великим інтересом зустрінута вченими, що працюють в області прикладної математики. Вдосконалений варіант MATLAB на мові С з'явився в 1984 р. Спочатку MATLAB призначався для проектування систем управління, але швидко завоював популярність в багатьох інших наукових і інженерних областях. Він також широко використовувався і в освіті, зокрема, для викладання лінійної алгебри і чисельних методів. Мова MATLAB є високорівневою інтерпретуємою мовою програмування, що включає засновані на матрицях структури даних, широкий спектр функцій, інтегроване середовище розробки, об'єктно- орієнтовані можливості і інтерфейси до програм, написаних на інших мовах програмування.

Основною особливістю мови MATLAB є його широкі можливості по роботі з матрицями, які творці мови виразили в гаслі «думай векторно» (англ. Think vectorized). MATLAB надає користувачеві велику кількість (декілька сотень) функцій для аналізу даних, що покривають практично всі області математики.

MATLAB надає зручні засоби для розробки алгоритмів, включаючи високорівневі з використанням концепцій об’єктно-ориєнтованого програмування. У ньому є всі необхідні засоби інтегрованого середовища розробки, включаючи отладчик і профайлер. Функції для роботи з цілими типами даних полегшують створення алгоритмів для мікро контролерів і інших застосувань, де це необхідно.

У складі пакету MATLAB є велика кількість функцій для побудови графіків, зокрема тривимірних, візуального аналізу даних і створення анімованих роликів. Вбудоване середовище розробки дозволяє створювати графічні інтерфейси користувача з різними елементами управління, такими як кнопки, поля введення і іншими. За допомогою компоненту MATLAB Compiler ці графічні інтерфейси можуть бути перетворені в самостійні застосування, для запуску яких на інших комп'ютерах необхідна бути встановлена бібліотека MATLAB Component Runtime.

Пакет MATLAB містить функції, які дозволяють йому діставати доступ до інших додатків середовища Windows так само, як і цим застосуванням діставати доступ до даних MATLAB, за допомогою технології динамічного обміну даними (DDE). Інтерфейс для послідовного порту пакету MATLAB забезпечує прямий доступ до периферійних пристроїв, таким як модеми, принтери і наукове устаткування, що підключається до комп'ютера через послідовний порт (COM - порт). Інтерфейс працює шляхом створення об’єкту спеціального класу для послідовного порту. Наявні методи цього класу дозволяють читати і записувати дані в послідовний порт, використовувати події і обробники подій, а також записувати інформацію на диск комп'ютера в режимі реального часу. Це буває необхідно при проведенні експериментів, симуляції систем реального часу і для інших застосувань. Для MATLAB є можливість створювати спеціальні набори інструментів (англ. toolbox), що розширюють його функціональність. Наборами інструментів є колекції функцій, написаних на мові MATLAB для вирішення певного класу завдань. Компанія Mathworks поставляє набори інструментів, які використовуються в багатьох областях.

Matlab & MS Word

Основою MATLAB є рішення математичних задач з простим інтерфейсом та досить малими можливостями стилізації текстів. В рамках останнього немалі переваги мають текстові процесори класа Word, які дозволяють в рамках одного документу створювати опис з любим стилем, кольором та розміром символів, добавляти до цього опису малюнки, математичні формули та графіки функцій. Але ці об’єкти не можуть взаємодіяти при зміні даних, що описують дану задачу.

Notebook (Блокнот) – це спеціальний пакет системи MATLAB, що дозволяє готовити за допомогою текстового процесора (редактора) Microsoft Word електронні документи (книги) з повноцінним текстовим описом, з різноманітним стильовим оформленням і “живими” прикладами.

Notebook забезпечує об`єднання можливостей текстових процесорів класа Word з можливостями MATLAB шляхом вставки в будь-які тексти документів, створюваних цими редакторами, діючих комірок вводу та виводу. При цьому зміна вхідних даних в комірках вводу веде до зміни результатів обчислень в пов’язаних з ними комірках виводу. Це і забезпечує “оживлення” окремих прикладів та електронних книг на базі додатка Notebook. В комірках виводу може відображуватися будь-яка інформація – числа, вектори, матриці, малюнки тощо. Але слід зауважити, що використання своїх .m-файлів та вставка повноцінної анімації MATLAB без використання пакету Simulink неможливо, цю проблему ми не будемо досліджувати.

Також потрібно відмітити, що MATLAB не дозволяє готувати документи, в яких містяться малюнки, графіки – вони створюються в окремих вікнах. Не можливо в MATLAB відображати і математичні формули в їх звичайному вигляді. Це створює труднощі при читанні документу. Документи, які готує Notebook, можуть містити всі ці елементи і мати вигляд листа книги.

В основі Notebook лежить механізм динамічного зв’язку (DDE – Dynamic Data Exchange) між різними додатками в операційній системі Windows. При цьому можлива передача змінених даних з одного додатку в інший і навпаки. Додатки (що передають дані) називаються сервером, а ті що приймають дані – клієнтами. В системі “Word – MATLAB”, що реалізована в Notebook, вони обидва можуть виконувати роль сервера та клієнта.

Установка Notebook

Створення документів на базі Notebook в MATLAB вирішено досить оригінально. По-перше, в процесі нього в явній формі відсутній процес створення об’єкта зв’язку між додатками за допомогою команди Insert Object (Вставка об’єкта). Такий зв'язок створюється автоматично – потрібно лише загрузити файл з іменем readme.doc з папки PC в папке NOTEBOOK системи MATLAB [1, c. 83]. Коли Word видасть повідомлення про те, що текст цього документа містить макроси, потрібно підтвердити їх загрузку – в противному випадку додаток Notebook працювати не буде.

Можливо також дати команду notebook з командного вікна MATLAB – при цьому відбудеться запуск текстового редактора Word тої версії, що встановлена на даному ПК. Але для першого запуску потрібно виконати встановлення зв’язку MATLAB з Word, виконавши команду:

  >> notebook -setup
  Welcome to the utility for setting up the MATLAB Notebook
  for interfacing MATLAB to Microsoft Word
  Choose your version of Microsoft Word:
  Microsoft Word 97
  Microsoft Word 2000
  Microsoft Word 2002 (XP)
  Exit, making no changes

Тепер потрібно вказати версію Word у вигляді номера:

  Microsoft Word Version: 3

Діалог добре завершиться виводом повідомлення:

  Notebook setup is complete.

Для нових версій пакета MATLAB можливий інший вибір текстових процесорів.

Початки роботи з Notebook

Після виконання команди notebook в командному вікні MATLAB відкриється новий документ MS Word в який буде інтегрована нова вкладка меню, та можливість створення m-файлів в меню Файл

Алгоритм створення M-book

  • команда notebook в командному вікні MATLAB;
  • у створеному автоматично вікні Word набираємо команди, які нам необхідні для виконання, набираємо за всіма правилами набору MATLAB;
  • Виділяємо необхідні строки і натискаємо комбінацію клавіш Alt+D, або у меню Notebook натискаємо команду Define Input Cell, в результаті наш текст буде виділений і поміщений в щось схоже на комірку;
  • Запускаємо нашу комірку на виконання комбінацією клавіш Ctrl + Enter або у меню Notebook команду Evaluate Cell;
  • Отримаємо результат, який поміститься відповідно під нашею коміркою;

Matlab: робота з файлами

При обробці даних часто виникає необхідність зберігання як вхідних так і вихідних даних. Для цього зазвичай використовують файли. Файли – це досить широко використовувані об’єкти MATLAB. Робота з файлами в MATLAB досить схожа на роботу з файлами в мові програмування високого ріня С++. Покажемо коротко аналогії та відмінності.

Відкриття та закриття файлів

Файл звичайно є деякою сукупністю даних, об’єднаних одним іменем. Тип файлу, як правило, визначається його розширенням. Будемо розглядати файл як одне ціле, без врахування особливостей операційних систем (напр.. для Windows – фрагментація).
Перед використанням будь-якого файлу він повинен бути відкритий, а по закінченню – закритий. Багато файлів може бути відкрито та доступно для читання одночасно. Розглянемо команди відкриття та закриття файлів.

Розглянемо відмінність у відкритті файлів та методом пошуку файлів за іменем в середовищі MATLAB від С++.

Команда open mane, де mane повинно містити масив символів або символьну змінну, відкриття здійснюється залежно від аналізу параметра mane та розширення в імені.

Якщо файл з розширенням існує в каталозі MATLAB, то відкривається той файл, який повертається командою which name, якщо нема – то файл із файлової системи. Якщо файл не має розширення імені, то він відкривається тою програмою, формат файлів якої був би знайдений функцією which (‘name_file’). По замовчуванню для всіх файлів крім MATLAB-файлів, визивається openother. Open визиває функції openxxx, де xxx – розширення файлу. Виключення – змінні робочої області, для яких викликається openvar, та малюнки для яких викликається openim.

Двійкові файли

Двійковими або бінарними файлами називають файли, дані яких представляють собою машинні коди. Основні операції с такими кодами аналогічні С++, коротко їх розглянемо:

  1. Відкриття файлів “індеф_ф”=fopen(‘ім`я_ф’,’флаг’) – “індеф_ф” - ідентифікатор, на відміну від С++ не оголошується; цією функцією відкривається файл з іменем ‘ім`я_ф’, та флагом:
    • r’ – відкриває файл для читання;
    • ‘r+’ – відкриває файл для читання та запису;
    • ‘w’ – видалення вмісту існуючого файлу або створення нового та відкриття його для запису;
    • ‘a’ – створення та відкриття нового файлу або відкриття існуючого для запису з добавленням в кінець файлу;
  2. Закриття файлу fclose(‘індеф_ф’);
  3. [A, count]=fread(fid,size,precision) – считує двійкові дані з заданого файлу fid та поміщає їх в матрицю А. Вихідний аргумент count містить число правильно зчитаних (удачно) елементів, sizе – аргумент який визначає кількість зчитуваних даних, якщо він не визначений, зчитування іде до кінця файлу.
  4. count=fwrite(fid,A,precision) – записує елементи матриці А в файл з заданою точністю. Дані записуються в файл по стовпцям, вихідний елемент містить число правильно записаних елементів. Добавляє символ «возврат каретки» перед початком нового рядка.

Форматовані файли (текстові)

Файли, які містять форматовані дані, називаються форматованими файлами або текстовими. Всі функції використовувані для роботи з цими файлами аналогічні функціям для текстових файлів в С++.

  1. line=fgetl(fid) – повертає рядок з файлу з ідентифікатором fid з видаленням символу кінця рядку. Якщо функція знаходить кінець файлу, то вона повертає значення -1;
  2. line=fgets(fid) – повертає рядок з файлу з ідентифікатором fid, не видаляючи символ кінця рядка;
  3. line=fgets(fid,nchar) – повертає не більше nchar перших символів рядка. Після признака кінця рядка чи файла символи більше не зчитуються;
  4. count=fprintf(fid,format,A,…) – форматує дані, що містяться в дійсній частині матриці А, під контролем рядка format та записує їх в файл з ідентифікатором fid. Повертає число записаних байтів.
  5. A=fscanf(fid,format) – читає всі дані з файла з ідентифікатором fid, перетворює їх згідно значення параметра format і повертає у вигляді матриці А
  6. [A,count]=fscanf(fid,format,size) – зчитує кількість даних, визначених параметром size, перетворює їх згідно з параметром format і повертає разом з кількістю успішно зчитаних елементів count. Параметр size – це деякий аргумент, визначаючий кількість зчитаних даних.

Функції fscanf та fprintf ведуть себе аналогічно до подібних функцій в мовах програмування С/С++, має аналогічні специфікатори форматів даних, та спеціальні символи в рядках форматів, тому ми не будемо на цьому докладно зупинятися.

MatLab & MS Excel

Excel Link дозволяє інтегрувати Excel та MatLab. Дані, які зберігаються в вигляді таблиці на листу Excel, можна перенести в MatLab в вигляді матриці, або навпаки. При цьому переносяться не формули, а тільки значення.

Установка Excel Link

Завантажити Excel. Натиснути кнопку Сервис – Надстройки – Обзор – «Каталог до MatLab»\toolbox\exlink\excllink.xla.

З’явиться надбудова – putmatrix – getmatrix – evalstring та вікно MatLab Command Window.

Користування Excel Link

Putmatrix – записує виділену таблицю в MatLab (зявится запит, якій змінній потрібно присвоїти таблицю в вигляді матриці);

Getmatrix – записує зміст матриці в Excel;

Evalstring – виконує команду MatLab’a.

Якщо не потрібно, щоб MatLab завантажувався автоматично з Excel, наберіть в будь-якій комірці Excel команду:=MLAutoStart(«no»).

=MLClose() – закриває ExcelLink та MatLab;

=MLOpen() – ініціює ExcelLink та MatLab.

Копіювання даних з Excel

=MLPutMatrix(“var_name”;diap) – кладе в матрицю var_name дані з діапазону diap;

=MLAppendMatrix(“var_name”;diap) – добавляє до існуючої матриці var_name діапазону diap;

=MLPutVar(“ML_var_name”;VBA_var_name) – переносить дані з Visual Basic (VBA) в MatLab(ML).

Запуск команд MatLab'a з Excel

=MLEvalString(“command”) – виконує команду або групу команд ML, знаходячись в Excel.

Видалення матриці MatLab

=MLDeleteMatrix(“var_name”) – видалення матриці.

Копіювання даних в Excel

=MLGetMatrix(“var_name”;”diap”) – копіює матрицю в Excel, на верхній лівий край вказує діапазон diap;

=MLGetVar(“ML_var_name”;VBA_var_name) – присвоює змінній VBA значення матриці ML.

ООП та MatLab

В основі об’єктно-орієнтованого програмування (ООП) лежать три основних принципа:

  • інкапсуляція – об`єднання даних і програм і передачу даних через вхідні і вихідні параметри функцій. В результаті з`являється новий елемент програмування – об’єкт;
  • наслідування – можливість створення батьківських об’єктів та нових дочірніх об’єктів, наслідуючих властивості батьківських об’єктів. Можливо також множинні наслідування, при яких клас наслідує властивості декількох батьківських об’єктів. На наслідуванні основані системи задання типів даних, дескрипторна графіка і багато інших прийомів програмування;
  • поліморфізм – присвоєння деякій дії одного імені, яке в подальшому використовується по всьому ланцюгу створюваних об’єктів зверху до низу, причому кожний об’єкт виконує цю дію звичним йому способом.

В доповнення до цього ООП в MATLAB дозволяє агрегування об’єктів, тобто об`єднання частин об’єктів або ряду об’єктів в єдине ціле.

Класи об’єктів

Об`єкти можна визначати як деяку структуру, яка належить деякому класу. В MATLAB визначаються сім класів об’єктів:

  • double – числові масиви з елементами – числами подвійної точності;
  • sparse – двовимірні числові або комплексні розріджені матриці;
  • char – масиви символів;
  • struct – масиви структур (записів);
  • cell – масиви комірок;
  • javaarray – масиви Ява;
  • function_handle – дескрипторні функції.

Створення класа або об’єкта

Для створення класа об’єктів або об’єктів, а також для їх ідентифікації використовується функція class.

  1. class(OBJ) – повертає клас вказаного об’єкта OBJ;
  2. OBJ=class(S,’class_name’,PARENT1,PARENT2,…) – створює об’єкт класа ‘class_name’ на базі структури S і батьківських об’єктів PARENT1, PARENT2… при цьому створюваний об’єкт наслідує структуру і поля батьківських об’єктів. Об’єкт OBJ в даному випадку має множинне наслідування;
  3. OBJ=class(struct[ ],’class_name’, PARENT1,PARENT2,…) – не може мати полів, крім унаслідуваних від батьківського об’єкта.

Належність об’єкта до заданого класу

Для контроля належності об’єкта до деякого класу використовується функція isa:

  • isa(OBJ,’class_name’) – повертає логічну одиницю, якщо OBJ належить класу з вказаним іменем. Додатково до вище описаних виділяють класи numeric та single. Але не знаходить клас logical. Потрібно використовувати функцію islogical, щоб перевірити належність до цього класу.
  Приклад:
  >>X=[1 2 3];
  >>isa(X,’char’)
  Ans =
  0


  >>isa(X,’double’)
  Ans =
  1  

Інші функції ООП

Для отримання списку методів даного класу об’єктів часто використовують methodsview name та methods. Відмінність від what class_name є те, що ці функції повертають інформацію також і про клас Java, але інформація виводиться в окремому вікні, не повідомляється інформація про папки, всі методи зі всіх папок зібрані разом і повторювані імена методів видалені.

  1. methodsview name_class або methods name_class –full – в окремому вікні повертають повний опис методів класа, включаючи інформацію про наслідування, а для класа Java – і про атрибути та підписи;
  2. M=methods(‘class_name’,’-full’) – повертає ту ж інформацію в масив комірок М;
  3. M=methods(‘class_name’) – повертає масив комірок з перерахунком методів, що відносяться до заданого класа об’єктів;
  4. Methods class_name – повертає перелік методів в окреме вікно.
  Приклад:
  >> methods char
  
  Methods for class char:
  
  abs                   fix                minus              reshape            
  …

MatLab Builder for Excel

Інструменти MATLAB Builder for Excel відкривають користувачам більш широкі технологічні можливості. Застосовуючи цей інструмент, користувач у режимі інтерактивної роботи може автоматично перетворити програму-функцію, написану на мові програмування MATLAB, в код VBA, який, згодом, буде використаний як макрос Excel.

Проте ця технологія має ряд істотних недоліків:

1. VBA - інтерпретатор, тому великий за обсягом програмний код починає «гальмувати» Excel;

2. Деякі методики та алгоритми, реалізовані у вигляді програмного коду, є комерційною або авторської таємницею, тому їх вміст не повинен бути доступний сторонньому користувачеві. Звичайно, макрос може бути закритий паролем, але в наш час такий захист не є надійним.

Альтернативними варіантами інтеграції функціоналу MATLAB в Excel або MS Project, можуть бути можливості, які надають розробникам два тулбокса MATLAB: MATLAB Builder for COM і MATLAB Builder for NET.

Як зрозуміло з назв цих інструментів - один будівник створює бібліотеку COM-dll, а інший - NET-dll.

Як відомо, MS Office створений на базі технології COM. Природно, що той же Excel або MS Project, дозволяє через інструмент Tools / References / підключити будь-який сторонній COM-об'єкт.

На мій погляд, технологія інтеграції dll MATLAB в Excel через інтерфейс COM найбільш краща. У рамках цієї технології розробник створює будівником MATLAB Builder for COM COM-dll, підключає цю бібліотеку до середовища MS Office і отримує доступ до функцій MATLAB.

У той же час необхідно відзначити, що «в лоб» ця задача не вирішується: MATLAB вельми специфічно будує свої dll, як COM, так і NET, і, як наслідок, при прямому зверненні до MATLAB dll виникає повідомлення про помилку. Причина помилки полягає в тому, що при роботі MATLAB використовує свій набір класів, що забезпечують взаємодію користувачів з типами даних MATLAB. Тому перед початком виклику функції, що знаходиться в dll, в програмному коді C# (VB) необхідно підключити MATLAB, який надає розробнику доступ до методів і властивостей класів MATLAB. Досить докладно ця технологія описана в документації по цьому продукту.

Ще одним способом підключення інструментарію MATLAB до додатків MS Office є створення засобами MATLAB звичайних поділюваних dll, тобто Win32 dll. Спосіб не найпростіший, так як вимагає високої професійної підготовки розробника. Однак за обсягом dll і швидкості виконання функцій, бібліотека Win32 ефективніше відповідних об'єктів COM і NET. До того ж, з бібліотеками Win32 можуть взаємодіяти всі програми Windows, що мають у своєму складі засоби налаштування та програмування.

Слід мати на увазі, що для використання Win32 dll MATLAB в додатках Windows необхідно написати надбудову-перехідник, тобто «Дозбирати» цю бібліотеку наприклад, в Visual Studio, і потім, перекомпілювати її в стандартну Windows dll. Але так як, це завдання можна вирішити тільки на мовах програмування C++ або C, проблема може виявитися нетривіальною для малодосвідченого розробника.

Найбільш технологічним способом використання потужного функціоналу MATLAB в бізнес-діяльності менеджерів-аналітиків компаній є створення MATLAB dll на базі технології NET, і подальша інтеграція цих бібліотек в КІС. Власне, в західних компаніях так і відбувається - SAP, Oracle розроблені на базі технології NET, і чудово взаємодіють з «материнським» середовищем.

Інтеграція може бути здійснена і через інструментарій MS Office. При інсталяції MS Office, необхідно додати до його складу компоненти NET (технологія підключення NET-компонент до MS Office докладно описана на сайті Microsoft).

Функції MATLAB dll можуть бути задіяні і у вигляді незалежних функціональних компонентів КІС.

MATLAB & NET

Як уже зазначалося, MATLAB будує досить специфічні dll. Їх специфіка полягає в тому, що крім власне файлу загальнодоступній бібліотеки (.Dll), будівник бібліотек створює ще й файл формату .Ctf. Цей файл містить стислий архів m-файлів, що є набором функцій користувача, а також функції MATLAB, які викликаються додатками користувача, тобто середовище MATLAB. Цей момент необхідно враховувати при складанні проекту NET.

Розглянемо типове рішення створення та інтегрування в середу NET бібліотеки MATLAB.

Припустимо, що розроблений набір функцій MATLAB, які реалізують функціонал моделі фінансового стану компанії. Ці функції повинні бути інтегровані в програму Windows у вигляді бібліотеки NET.

Для розробки інструментарію програми використовується компілятор Visual Studio і мова програмування C#. Розробнику необхідно виконати наступні дії:

1. Створити бібліотеку NET. Зробити це можна двома альтернативними способами:

• запустити в командному рядку MATLAB Builder for NET, зібрати файли проекту і побудувати бібліотеку;

• включити відповідний bat-файл безпосередньо в збірку проекту Visual Studio.

2. Відкрити проект Visual Studio і виконати наступні дії:

• Додати до References проекту бібліотеку користувача та набір бібліотек, що містить класи MATLAB - MWArray.dll і MWComUtil.dll

• Включити додані об'єкти оператором using в простір імен проекту

using AFKpr; using mathworks.MATLAB.NET.Utility; using mathworks.MATLAB.NET.Arrays;

• Створити конструктором екземпляр класу

AFKprclass afk = new AFKprclass();

Важливо мати на увазі, що викликати функцію з бібліотеки MATLAB безпосередньо з програмного коду C# неможливо - для цього необхідно написати метод-перехідник, що перетворює типи даних C# в типи даних MATLAB:

Заголовок методу в C#

Private void CtoMatLab(double[,] Mas_L, double[,] Mas_D, double[,] Mas_B, string[,] DateString, int KolC, int KolR, bool flagCheckEdit10, bool flagCheckEdit11, bool flagCheckEdit12, int [] NameBusiness, string[,] MasDate, double[] RR, double[] GG, double[] BB)

Виклик в методі проекту функції MATLAB

argOut = (MVArray)afk.massiv2((MWNumericArray)Mas_L, (MWNumericArray)Mas_D, (MWNumericArray) Mas_B, (MWNumericArray)KolC, (MWNumericArray)KolR, f1, f2, f3, (MWNumericArray)NameBusiness, (MWNumericArray)rr, (MWNumericArray)RR, (MWNumericArray)GG, (MWNumericArray)BB);

Метод по особливих алгоритмах перетворює типи даних C# в типи даних MATLAB:

• double, int і float в MWNumericArray

• bool в MWLogicalArray

• string в MWCharArray

В результаті розробник отримує можливість коректно викликати функцію MATLAB з додатка Windows.

Технологія інтеграції функціоналу MATLAB дозволяє користувачам Windows-додатків максимально використовувати аналітичні інструменти цього пакета програм для:

• вирішення оптимізаційних завдань будь-якої розмірності;

• отримання надійних результатів фінансово-економічних розрахунків, в тому числі в режимі on-line;

• тривимірної візуалізації складних геометричних фігур і поверхонь, що мають економічну сутність;

• створення алгоритмів оцінки бізнесу, які потребують великого обсягу обчислень;

• створення інтелектуальних систем управління проектами;

• моделювання економічних процесів будь-якого ступеня складності з використанням можливостей пакету Simulink.

Коротка характеристика системи MATLAB та пакету Simulink

Назва системи скорочена від Matrix Laboratory – Матрична лабораторія. Саме це є відмінністю системи – орієнтація на роботу з векторами і масивами даних у матричній і комплексній формах. Система сумісна із програмами, що написані на мовах FORTRAN, C та C++.

Система, окрім використання загальних математичних функцій, надає багато можливостей з інженерних розрахунків, проектних та дослідницьких робіт: розв’язання систем алгебраїчних та диференційних рівнянь, роботу із аналоговими та цифровими сигналами, проектування аналогових та цифрових фільтрів, дослідження частотних, імпульсних та перехідних характеристик, виконання спектрального аналізу та синтезу, зокрема прямого та зворотного перетворення Фур’є, розв’язання задач оптимізації і багато інших. Система MATLAB є відкритою і постійно удосконалюється.

Система має особисту М - мову. Позитивними її рисами є порівняно невелика кількість операторів і необов’язковість обирання типів та розмірів змінних. На відміну від деяких мов, в MATLAB відсутні глобальні змінні, дія котрих розповсюджувалась би на всі програмні одиниці. Але при цьому MATLAB має цінну можливість, яка відсутня в інших програмах – дозволяє в одному і тому ж сеансі роботи виконувати кілька самостійних програм, причому всі змінні цих програм становляться спільними і утворюють єдиний робочий простір (WorkSpace).

Система MATLAB забезпечує отримання якісної двох- та трьохвимірної графіки і надає різноманітні можливості редагування цих графіків.

Одною із найбільш привабливих особливостей системи MATLAB є наявність в неї наочного та ефективного засобу створення програмних моделей – пакету візуального програмування Simulink. Пакет дозволяє проводити дослідження (моделювання у часі) поведінки динамічних лінійних та нелінійних систем. Програма створюється в діалоговому режимі, шляхом зборки на екрані схеми з’єднань елементарних ланок (блоків). В результаті отримуємо так звану S - модель (файл із розширенням *.mdl). Такий процес створення програми має назву візуального програмування. В процесі моделювання є можливість спостерігати процес за допомогою спеціальних засобів вимірювання, які виглядають наочно, як наприклад, осцилограф або цифровий дисплей.

Досить часто необхідно оформляти технічні документи, які містять блок-схеми функціональних моделей систем, а також графічні результати моделювання в середовищі MATLAB – Simulink у текстовому редакторі MS Word.

Різноманітні графічні результати, а також Simulink-моделі можна безпосередньо роздрукувати на принтері, виконавши команду Print з пункту основного меню File або скориставшись відповідною кнопкою на панелі інструментів для всіх вікон, які містять основне меню настроювання. Однак для оформлення різних документів цього явно недостатньо, особливо коли доводиться отримані малюнки розміщувати поруч з текстом.

Для розміщення блок-схеми Simulink-моделі у вигляді рисунка в редактор MS Word необхідно виконати команду Copy model to clipboard з пункту основного меню Edit вікна моделі, яка виконує копіювання всієї схеми в буфер обміну.

Спроба виділити всю модель (команда Select all з пункту меню Edit), а потім помістити її в буфер обміну командою Copy, призведе до того, що скопійовану модель можна буде вставити з буфера обміну тільки у вікно моделі Simulink і не вийде цього зробити в редакторі MS Word.

Розміщення графічних результатів в редактор MS Word здійснюється виконанням команди Copy Figure з пункту основного меню Edit вікна графічної фігури