В предыдущей статье мной были рассмотрены возможности среды GUIDE входящей в MATLAB, ее инструментарий сильно устарел как по функциональности так и по дизайну. Такого инструментария недостаточно для реализации более-менее крупных проектов, которые подразумевают большое количество строк кода и создание исполняемого файла. Под такие требования полностью подпадает инструментарий MLAPP. Такого приложения нет в старых версиях MATLAB, в рамках данной статьи работа будет вестись в MATLAB 2019а. Для среды MLAPP достаточно выполнить в командной строке матлаба следующую команду:
![Запуск инструмента по созданию приложений
Запуск инструмента по созданию приложений](https://habrastorage.org/getpro/habr/upload_files/5e6/bfd/715/5e6bfd715e16c105ed56df221ae51ea8.jpg)
Далее открывается окно в котором можно выбрать один из возможных шаблонов, либо пустое окно для создания приложения:
![Варианты шаблонов для создания приложения
Варианты шаблонов для создания приложения](https://habrastorage.org/getpro/habr/upload_files/a72/171/0af/a721710af9265b0808a73ec59e69cdc4.jpeg)
В качестве примера приложение будет создаваться без использования шаблонов:
![Выбор одного из шаблонов
Выбор одного из шаблонов](https://habrastorage.org/getpro/habr/upload_files/d60/6f8/e66/d606f8e660b9661e75f09719d354f03b.jpeg)
В инструментарий mlapp входит большое число элементов управления для организации интерфейса программы:
![](https://habrastorage.org/getpro/habr/upload_files/a5a/7de/333/a5a7de333dab36058c1961338b11dc0a.jpeg)
![Элементы интерфейса программы
Элементы интерфейса программы](https://habrastorage.org/getpro/habr/upload_files/55c/26d/3f5/55c26d3f5aa22a1f8dc2bd1b4c822f5e.jpeg)
Добавляя элементы управления, формируем облик приложения:
![Формирование облика приложения
Формирование облика приложения](https://habrastorage.org/getpro/habr/upload_files/ded/738/265/ded7382654fc1395b1fe5bdc0e220d4c.jpeg)
Для создания реакции на нажатие кнопок необходимо открыть контекстное меню:
![Настройка логики работы элементов интерфейса
Настройка логики работы элементов интерфейса](https://habrastorage.org/getpro/habr/upload_files/0df/28b/d26/0df28bd266068b1e8dfd0366b8ea2182.jpeg)
У mlapp существует особенность, которая сильно отличает написание кода в нем от других IDE, mlapp не позволяет редактировать тот код, который отвечает за структуру самого приложения (настройки интерфейса, параметры элементов управления), то что нельзя редактировать выделяется в редакторе серой заливкой. Область, в которой приложение позволяет писать код, показано белой заливкой.
![Фрагмент кода программы
Фрагмент кода программы](https://habrastorage.org/getpro/habr/upload_files/328/2d6/d0f/3282d6d0f59207f2e6c0060eea9c5a8c.jpeg)
И редактировать и создавать можно только тот код который отвечает за логику работы приложения:
![Фрагмент кода программы
Фрагмент кода программы](https://habrastorage.org/getpro/habr/upload_files/015/1e9/467/0151e946793eb43dbc0af75c15e6ab65.jpeg)
Язык написания кода – это MATLAB, а файлы формата mlapp представляют собой *.zip архивы которых содержат код приложения и файл графического интерфейса.
Когда приложение готово, его необходимо подготовить к распространению, для этого в mlapp существует следующий инструмент:
![Выбор типа распространяемого приложения
Выбор типа распространяемого приложения](https://habrastorage.org/getpro/habr/upload_files/647/82f/c4f/64782fc4f51af3afc9949db955bd5a00.jpeg)
![Описание версии приложения
Описание версии приложения](https://habrastorage.org/getpro/habr/upload_files/016/bf3/897/016bf3897647364ec8422f4f31544eb4.jpeg)
Для работы таких скомпилированных приложений необходимо, чтобы на компьютере было установлено ядро Matlab (matlab_runtime). Ядро матлаба можно либо скачать непосредственно с официального сайта и установить, либо встроить в распространяемое приложение:
![Включение ядра Mатлаб в распространяемое приложение
Включение ядра Mатлаб в распространяемое приложение](https://habrastorage.org/getpro/habr/upload_files/104/9c5/e15/1049c5e15899c10c33570868f5cde426.jpeg)
![Компиляция приложения
Компиляция приложения](https://habrastorage.org/getpro/habr/upload_files/791/4cb/a22/7914cba22d4af90b8fe694543c254aaa.jpeg)
![Исполняемый файл приложения
Исполняемый файл приложения](https://habrastorage.org/getpro/habr/upload_files/c52/9aa/431/c529aa4311c3cfd43478c1dede6531a2.jpeg)
![Запущенное приложение
Запущенное приложение](https://habrastorage.org/getpro/habr/upload_files/5fd/09f/257/5fd09f25795529883dca1af98209f7f3.jpeg)
Комментарии (8)
Arastas
08.12.2022 16:12+1Файлы mlapp не версионируются нормально сторонними средствами, вроде git. И это проблема.
timofeevka
10.12.2022 10:19-1А как у вас с лицензиями то? Или пиратку узаконили официально?
По GUI : в SimInTech графическая оболочка совмещает в себе сразу функции scada и рисования гуя. Собственно используя только саму оболочку без плагинов делали видеокадры для тренажеров АЭС успешно. Инструкция есть в справке по программе.
Собственно что вы пишете то до сих пор про матлаб? Пора писать о том на что и как его заменять на предприятиях и учебных заведениях.
timofeevka
10.12.2022 10:22А да: уберите тег "инженерные системы", обычно под этим имеют в виду водопровод , канализацию и электрические сети.
beeptec
10.12.2022 13:06Выглядит довольно недоношенным дитём, по сравнению с GUI LabVIEW, в который разработчик может встроить код MatLab и не париться со всеми этими "недо новшествами".
Arastas
10.12.2022 13:48Ну я видел несколько лет назад примеры gui labview. Либо они за эти несколько лет сильно изменились, либо я не понял, о чем вы: о процессе разработки или о конечном продукте?
beeptec
10.12.2022 13:53Эти возможности по интеграции в LW существуют с 2008 г, как впрочем и других языков, на тот случай, если разработчики хотят получить в среде полную свободу мысли.
Самые креативные проекты построения GUI от LW к примеру SpaceX.
К слову процесс GUI разработки ML 1:1 по образу и подобию это LW, у которого есть есть килотонны тулкитов под разные темы включая собственный exe компилятор дашборд, и прочие плюшки для создания автономного кроссплатформенного приложения с установщиком.
Arastas
В смысле, скачать 5Mb или встроить в инсталятор 754Mb?