MATLAB. Программирование на С++, С#, Java и VBA
Покупка
Тематика:
Программирование на C и C++
Издательство:
ДМК Пресс
Год издания: 2023
Кол-во страниц: 499
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-89818-594-7
Артикул: 817105.01.99
Доступ онлайн
В корзину
Всех, кто работал с системой MATLAB, поражает удивительная легкость написания программ на языке MATLAB для решения самых разнообразных задач. MATLAB предлагает классы, которые представляют основные типы данных MATLAB в других языках программирования: С/С++, Java, VBA, .NET. В системе имеется также возможность создания компонентов для этих языков, которые включают функции, написанные в MATLAB.
Изложению этой тематики посвящена данная книга. В ней подробно рассматривается работа Компилятора MATLAB, примеры создания независимых от MATLAB приложений на C++, Java, C#, VBA. Кроме того рассмотрена работа с MATLAB Production Server, что позволяет исполнять трудоемкие процедуры MATLAB на сервере MATLAB.
Освоение технологии использования колоссальных математических возможностей MATLAB в других языках программирования позволит создавать полноценные приложения с развитой графической средой для реализации сложных математических алгоритмов.
Издание предназначено студентам и преподавателям вузов по математическим специальностям, а также программистам, которые сталкиваются с проблемами реализации математических алгоритмов на MATLAB.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Интермедиатор. Математика (сводная)
- Программирование
- Программирование на C и C++
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.04: Прикладная математика
- 02.03.02: Фундаментальная информатика и информационные технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Н. К. Смоленцев MATLAB. Программирование на С++, С#, Java и VBA Москва, 2023 3-е издание, электронное Рекомендовано УМС по математике и механике УМО по классическому университетскому образованию РФ в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям и специальностям «Математика», «Прикладная математика и информатика», «Механика»
УДК 004.432 ББК 32.973.22 С51 С51 Смоленцев, Николай Константинович. MATLAB. Программирование на С++, С#, Java и VBA / Смоленцев Н.К.. — 3-е изд., эл. — 1 файл pdf : 499 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-594-7 Всех, кто работал с системой MATLAB, поражает удивительная легкость написания программ на языке MATLAB для решения самых разнообразных задач. MATLAB предлагает классы, которые представляют основные типы данных MATLAB в других языках программирования: С/С++, Java, VBA, .NET. В системе имеется также возможность создания компонентов для этих языков, которые включают функции, написанные в MATLAB. Изложению этой тематики посвящена данная книга. В ней подробно рассматривается работа Компилятора MATLAB, примеры создания независимых от MATLAB приложений на C++, Java, C#, VBA. Кроме того рассмотрена работа с MATLAB Production Server, что позволяет исполнять трудоемкие процедуры MATLAB на сервере MATLAB. Освоение технологии использования колоссальных математических возможностей MATLAB в других языках программирования позволит создавать полноценные приложения с развитой графической средой для реализации сложных математических алгоритмов. Издание предназначено студентам и преподавателям вузов по математическим специальностям, а также программистам, которые сталкиваются с проблемами реализации математических алгоритмов на MATLAB. УДК 004.432 ББК 32.973.22 Электронное издание на основе печатного издания: MATLAB. Программирование на С++, С#, Java и VBA / Н. К. Смоленцев. — 2-е изд., перераб. и доп. — Москва : ДМК Пресс, 2015. — 498 с. — ISBN 978-5-97060-282- 9. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-594-7 © Смоленцев Н. К., 2015 © Оформление, издание, ДМК Пресс, 2015
оглавление Предисловие ......................................................................... 12 Глава 1. Система компьютерной математики MATLAB .............................. 15 Введение................................................................................................................ 15 1.1..Общее.описание.системы.MATLAB................................................................... 16 1.1.1..Инструментальные.средства.рабочего.стола.MATLAB............................... 17 Меню.ленты.инструментов......................................................................................18 Окна,.используемые.в.работе.MATLAB....................................................................20 Редактор.массивов..................................................................................................21 Редактор.m-файлов.(MATLAB.Editor).......................................................................22 Анализатор.кода.(Code.Analyzer).............................................................................23 Профилировщик.(Profiler)........................................................................................24 Окно.для.просмотра.графиков................................................................................24 1.1.2..Справочная.система.MATLAB.................................................................... 25 1.1.3..Константы.и.системные.переменные.MATLAB........................................... 28 1.1.4..Типы.данных.MATLAB................................................................................ 28 1.2..Основы.работы.с.MATLAB................................................................................. 32 1.2.1..Запуск.MATLAB.и.начало.работы............................................................... 32 1.2.2..Задание.массивов.................................................................................... 34 Задание.одномерных.массивов..............................................................................35 Задание.двумерных.массивов.................................................................................36 1.2.3..Операции.над.массивами......................................................................... 38 1.2.4..Решение.систем.линейных.уравнений...................................................... 42 1.2.5..Решение.дифференциальных.уравнений.................................................. 43 1.2.6..Символьная.математика.пакета.расширения.Symbolic.Math..................... 48 1.2.7..М-файлы................................................................................................... 51 1.2.8..Чтение.и.запись.текстовых.файлов........................................................... 53 1.2.9..Операции.с.рабочей.областью.и.текстом.сессии...................................... 57 1.2.10..Графика.в.MATLAB.................................................................................. 59 1.3..Программирование.в.среде.MATLAB................................................................. 64 1.3.1..Операторы.системы.MATLAB.................................................................... 64 Арифметические.операторы...................................................................................65 Операторы.отношения............................................................................................65 Логические.операторы............................................................................................66 Логические.функции................................................................................................67 1.3.2..Управление.последовательностью.исполнения.операторов..................... 68 1.3.3..М-функции................................................................................................ 72 Подфункции............................................................................................................74 Частные.функции....................................................................................................74 Вызов.функции........................................................................................................75
Оглавление Рабочая.область.функции........................................................................................75 Проверка.количества.аргументов............................................................................76 Формирование.входного.массива.varargin..............................................................77 Формирование.выходного.массива.varargout..........................................................77 Локальные.и.глобальные.переменные.....................................................................78 1.3.4..Вычисление.символьных.выражений........................................................ 79 1.3.5..Ошибки.и.предупреждения....................................................................... 80 1.3.6..Повышение.эффективности.обработки.М-файлов.................................... 81 1.3.7..Пример..Огибающая.семейства.нормалей................................................ 83 1.4..Создание.графического.интерфейса.пользователя.в.MATLAB........................... 86 1.4.1..Среда.разработки.GUIDE.графического.интерфейса.пользователя........... 86 Свойства.инспектора.свойств.................................................................................91 Управления.событиями.GUI.....................................................................................92 Виды.обратных.вызовов..........................................................................................94 Структура.m-файла.приложения.............................................................................95 Создание.меню.......................................................................................................97 1.4.2..Пример.создания.GUI.«Предельные.циклы..Границы.хаоса»...................... 99 Постановка.задачи................................................................................................100 Создание.GUI........................................................................................................104 Упражнение..Создания.GUI.«Предельные.циклы..Границы.хаоса»..........................107 Постановка.задачи................................................................................................107 1.5..Взаимодействие.MATLAB.и.Microsoft.Excel...................................................... 108 1.5.1..Установка.продукта.и.конфигурирование................................................ 109 Конфигурирование.Microsoft.Excel.2003................................................................109 Конфигурирование.Microsoft.Excel.2007.и.2010.....................................................110 Установка.предпочтений.надстройки.Spreadsheet.Link.EX......................................111 1.5.2..Функции.Spreadsheet.Link.EX................................................................... 112 Запуск.и.закрытие.................................................................................................112 Настройка.............................................................................................................112 Экспорт.данных.в.MATLAB.....................................................................................113 Импорт.данных.из.MATLAB....................................................................................113 Команды.MATLAB.в.Microsoft.Excel........................................................................113 1.5.3..Использование.Spreadsheet.Link.EX........................................................ 113 1.5.4..Использование.Мастера.функций.(MATLAB.Function.Wizard)................... 114 1.6..Массивы.символов,.ячеек.и.структур.............................................................. 117 1.6.1..Массивы.символов................................................................................. 117 Общие.функции.....................................................................................................118 Преобразование.чисел.в.символы.и.обратно.........................................................119 Функции.преобразования.систем.счисления.........................................................120 Вычисление.строковых.выражений........................................................................121 1.6.2..Массивы.ячеек........................................................................................ 122 Создание.массивов.ячеек.....................................................................................122 Доступ.к.данным.в.ячейках....................................................................................124 Вложенные.массивы.ячеек....................................................................................126 1.6.3..Массивы.структур................................................................................... 127 Построение.структур.............................................................................................128 Доступ.к.полям.и.данным.структуры......................................................................129 Глава 2. Компилятор MATLAB ............................................................. 133 2.1..Общие.сведения.о.Компиляторе.MATLAB........................................................ 133
Оглавление 2.1.1..Назначение.Компилятора.MATLAB.......................................................... 134 2.1.2..Инсталляция.и.конфигурирование.......................................................... 134 2.1.3..Среда.выполнения.компоненты.MATLAB,.библиотека.MCR..................... 135 2.1.4..Среда.разработки.Deployment.Tool......................................................... 136 2.2..Создание.автономных.приложений.и.библиотек............................................. 139 2.2.1..Создание.автономного.приложения........................................................ 140 Подготовка.к.созданию.приложения......................................................................140 Создание.приложения...........................................................................................140 Установка.приложения.на.другую.машину.............................................................142 2.2.2..Библиотеки.совместного.использования.С.и.обращение.к.ним.. из.программы.................................................................................................. 143 Подготовка.к.созданию.библиотеки......................................................................143 Создание.библиотеки............................................................................................143 Установка.библиотеки.на.другую.машину..............................................................146 Создание.С-приложения,.использующего.библиотеку..........................................146 Тестирование.приложения....................................................................................149 2.2.3..Библиотека.совместного.использования.C++......................................... 150 2.2.4..Функции.библиотеки,.создаваемые.из.m-файлов................................... 151 Использование.varargin.и.varargout.в.интерфейсе.m-функции................................152 2.3..Программный.интерфейс.С/C++.API.Компилятора.MATLAB............................. 153 Примеры...............................................................................................................154 2.3.1..Классы.C++.Компилятора.5.1.MATLAB..................................................... 155 2.3.2..Класс.mwArray........................................................................................ 156 Основные.типы.данных..........................................................................................157 Конструкторы........................................................................................................157 Методы.копирования............................................................................................159 Методы.получения.информации.о.массиве...........................................................159 Методы.доступа.к.элементам.массива.mwArray.....................................................160 Статические.методы.............................................................................................162 Операторы............................................................................................................162 2.3.3..Класс.mwString....................................................................................... 163 Конструкторы........................................................................................................164 Методы.................................................................................................................164 Операторы............................................................................................................164 2.3.4..Класс.mwException.................................................................................. 165 2.3.5..Внешние.интерфейсы............................................................................. 165 Процедуры.доступа.к.MAT-файлам........................................................................166 Операции.с.массивами.mxArray............................................................................167 2.4..Передача.значений.между.C/C++.double,.mxArray.и.mwArray........................... 173 2.4.1..Преобразование.значений.между.C/C++.double.и.mxArray...................... 173 Преобразование.скаляров....................................................................................174 Преобразование.векторов....................................................................................174 Преобразование.матриц.......................................................................................174 2.4.2..Преобразование.значений.из.C/C++.double.в.mwArray............................ 174 Преобразование.скаляров....................................................................................175 Преобразование.векторов....................................................................................175 Преобразование.матриц.......................................................................................175 2.4.3..Преобразование.значений.из.mwArray.в.C/C++.double............................ 176 Преобразование.скаляров....................................................................................176 Преобразование.векторов....................................................................................176 Преобразование.матриц.......................................................................................177
Оглавление 2.4.4..Вспомогательные.функции.преобразования.данных............................... 177 Преобразование.значений.из.C/C++.double.в.mxArray...........................................177 Преобразование.значений.из.mxArray.в.C/C++.double...........................................179 Преобразование.из.C/C++.double.в.mwArray.........................................................180 Преобразование.mwArray.в.C/C++.double..............................................................181 Пример.создания.заголовочного.файла................................................................181 Глава 3. Создание компонентов для Java при помощи MATLAB Builder JA ... 183 3.1..Введение.в.Java.Builder................................................................................... 183 3.1.1..Необходимое.программное.обеспечение.Java........................................ 184 3.1.2..Установка.и.конфигурирование.MATLAB.Builder.JA.................................. 185 Установка.и.настройки.совместимости.MATLAB.Builder.JA.с.Java...........................185 3.2..Создание.и.использование.пакетов.MATLAB.Builder.JA................................... 188 3.2.1..Создание.пакета.Java.средствами.MATLAB.Builder.JA............................. 189 Подготовка.к.созданию.проекта............................................................................189 Создание.компонента...........................................................................................190 3.2.2..Разработка.приложения,.использующего.компонент.............................. 193 Создание.кода.приложения.Java...........................................................................193 Компиляция.приложения.......................................................................................195 Запуск.приложения...............................................................................................196 Упаковка.и.распространение.приложения.Java.....................................................196 3.2.3..Обсуждение.примера.Java-программы................................................... 197 3.2.4..Объем.n-мерного.шара.и.площадь.(n –.1)-мерной.сферы....................... 198 Создание.компонента.Java.Builder........................................................................198 Создание.кода.приложения.Java...........................................................................199 Компиляция.приложения.......................................................................................200 Запуск.приложения...............................................................................................201 3.3..Создание.оконных.приложений.в.среде.NetBeans........................................... 201 3.3.1..Среда.проектирования.IDE.NetBeans...................................................... 201 3.3.2..Объем.n-мерного.шара.и.площадь.(n – 1)-мерной.сферы....................... 206 Подключение.библиотек.MATLAB.и.созданного.пакета.Volume..............................207 Создание.окна.приложения...................................................................................209 Задание.элементов.окна.приложения...................................................................209 Создание.программы.приложения........................................................................210 Распространение.приложения..............................................................................212 3.3.3..Магический.квадрат................................................................................ 213 Подключение.библиотек.MATLAB.и.пакета.magicsquare.........................................213 Создание.окна.приложения...................................................................................214 Задание.элементов.окна.приложения...................................................................214 Создание.программы.приложения........................................................................214 3.4..Некоторые.вопросы.программирования.с.Java.Builder.................................... 216 3.4.1..Импорт.классов.и.создание.экземпляра.класса...................................... 217 3.4.2..Правила.обращения.к.методам.Java.Builder............................................ 217 Стандартный.интерфейс.......................................................................................218 Интерфейс.mlx......................................................................................................219 3.4.3..Правила.преобразования.данных.MATLAB.и.Java.................................... 220 Автоматическое.преобразование.в.тип.MATLAB....................................................220 Преобразование.типов.данных.вручную................................................................221 3.4.4..Аргументы.методов.Java.Builder.............................................................. 224 Передача.неопределенного.числа.параметров.....................................................224
Оглавление Получение.информации.о.результатах.методов....................................................226 Передача.объектов.Java.по.ссылке........................................................................228 3.4.5..Обработка.ошибок.................................................................................. 228 Обработка.исключений.MWException.....................................................................228 Обработка.общих.исключений...............................................................................229 3.4.6..Управление.собственными.ресурсами.................................................... 230 Использование.«сборки.мусора».JVM....................................................................231 Использование.метода.dispose.............................................................................231 3.5..Массивы.MATLAB.в.Java.................................................................................. 232 3.5.1..Использование.методов.класса.MWArray................................................ 233 Построение.и.удаление.MWArray...........................................................................234 Методы.получения.информации.о.MWArray...........................................................234 Методы.получения.и.задания.данных.в.MWArray....................................................236 Методы.копирования,.преобразования.и.сравнения.массивов.MWArray................238 Методы.для.использования.на.разреженных.массивах.MWArray............................240 3.5.2..Использование.MWNumericArray............................................................. 241 Построение.различных.типов.числовых.массивов.................................................242 Методы.уничтожения.MWNumericArray..................................................................246 Методы.для.получения.информации.о.MWNumericArray........................................246 Методы.доступа.к.элементам.и.задания.элементов.MWNumericArray....................247 Методы.копирования,.преобразования.и.сравнения.массивов.MWNumericArray.... 252 Методы.возвращения.значений.специальных.констант.........................................254 Методы.toTypeArray.и.getTypeArray.преобразования.массивов.данных..................254 Методы.работы.с.разреженными.массивами.MWNumericArray..............................255 3.5.3..Работа.с.логическими,.символьными.и.массивами.ячеек........................ 257 Логические.массивы.............................................................................................257 Символьные.массивы...........................................................................................258 Массивы.ячеек......................................................................................................259 3.5.4..Использование.MWClassID...................................................................... 260 Поля.MWClassID....................................................................................................260 Методы.класса.MWClassID....................................................................................261 3.5.5..Использование.класса.MWComplexity..................................................... 261 3.6..Язык.программирования.Java......................................................................... 262 Общие.сведения...................................................................................................262 3.6.1..Основные.элементы.языка.Java.............................................................. 263 Комментарии.и.имена...........................................................................................264 Константы.............................................................................................................265 Типы.данных..........................................................................................................266 Преобразования.типов..........................................................................................270 Преобразование.строки.в.число.(STRING.to.NUMBER)...........................................270 Преобразование.числа.в.строку.(NUMBER.to.STRING)...........................................271 Преобразования.чисел..........................................................................................272 Преобразования.символа.char..............................................................................272 Преобразования.простых.типов............................................................................273 Операции..............................................................................................................273 Операторы............................................................................................................276 Массивы...............................................................................................................279 3.6.2..Классы.в.Java.......................................................................................... 281 Понятие.класса.....................................................................................................281 Как.описать.класс.и.подкласс................................................................................283 Окончательные.члены.и.классы.............................................................................284 Класс.Object..........................................................................................................285 Опертор.new.........................................................................................................285
Оглавление Конструкторы.класса.............................................................................................286 Статические.члены.класса.....................................................................................286 Метод.main().........................................................................................................287 Где.видны.переменные..........................................................................................288 Вложенные.классы................................................................................................288 Пакеты.и.интерфейсы...........................................................................................289 Структура.Java-файла...........................................................................................291 Глава 4. MATLAB Builder NE для создания компонентов .NET .....................292 4.1..Среда.разработки.Microsoft.Visual.Studio..NET................................................ 293 4.1.1..Основные.элементы.платформы.Microsoft..NET...................................... 293 Основные.понятия.платформы..NET......................................................................293 Среда.выполнения..NET.Framework.......................................................................297 Стандартная.система.типов..................................................................................298 Общая.спецификация.языков.программирования.................................................300 4.1.2..Среда.разработки.Visual.Studio.2013....................................................... 300 Запуск.и.вход.в.Visual.Studio..................................................................................300 4.1.3..Создание.простого.приложения............................................................. 304 Создание.проекта.................................................................................................304 Настройка.проекта................................................................................................306 Конструирование.пользовательского.интерфейса................................................307 Обработка.событий...............................................................................................308 Отладка.и.тестирование.приложения....................................................................309 Сборка.окончательной.версии..............................................................................309 4.2..Начало.работы.с..NET.Builder:.создание.консольных.приложений................... 310 4.2.1..Назначение.Компилятора.MATLAB.Builder.NE.......................................... 310 4.2.2..Инсталляция.и.конфигурирование.......................................................... 311 4.2.3..Создание..NET.сборки.в.среде.разработки.Deployment.Tool.................... 312 4.2.4..Разработка.приложения.для.библиотеки.матричной.математики............ 316 Открытие.и.настройка.проекта..............................................................................316 Файл.приложения.................................................................................................317 Обсуждение.кода..................................................................................................319 Запуск.приложения...............................................................................................320 Распространение.сборки.и.приложения................................................................321 4.2.5..Использование.командной.строки.для.создания..NET.сборки................. 321 4.2.6..Создание.COM-компонентов.................................................................. 323 Пример.COM-компонента.и.приложения...............................................................325 4.3..Примеры.Windows-приложений,.использующих.математические.. процедуры.MATLAB............................................................................................... 327 4.3.1..Вычисление.интегралов.......................................................................... 328 Разработка.m-функций.........................................................................................328 Создание..NET-компонента...................................................................................330 Создание.приложения...........................................................................................330 4.3.2..Решение.обыкновенных.дифференциальных.уравнений......................... 337 Разработка.m-функций.........................................................................................339 Создание..NET-компонента.ODE...........................................................................342 Создание.Windows-приложения............................................................................343 4.3.3..Вейвлет-анализ.сигналов..Открытие,.обработка.и.сохранение.файлов.....352 Вейвлет-анализ.сигнала.......................................................................................352 Разработка.m-функций.........................................................................................353 Создание..NET-компонента...................................................................................356
Оглавление Создание.приложения...........................................................................................356 4.4..Введение.в.программирование.с..NET.Builder................................................. 368 4.4.1..Библиотека.классов..NET.MWArray.......................................................... 369 4.4.2..Правила.преобразования.данных............................................................ 371 4.4.3..Интерфейсы,.создаваемые..NET.Builder.................................................. 375 4.4.4..Задание.сборки.компонента.и.пространства.имен.................................. 378 4.4.5..Обязательные.элементы.программы...................................................... 378 4.4.6..Передача.входных.параметров............................................................... 380 Примеры.передачи.входных.параметров...............................................................382 Передача.массива.вводов.....................................................................................382 Обработка.глобальных.переменных.MATLAB.........................................................383 Обработка.возвращаемых.значений......................................................................383 Использование.запросов.MWArray........................................................................385 4.4.7..Обработка.ошибок.................................................................................. 386 4.4.8..Управление.родными.ресурсами............................................................ 386 4.4.9..Преобразования.между.типами.C#.и.MWNumericArray............................ 389 Преобразование.скаляров....................................................................................389 Преобразование.векторов....................................................................................390 Преобразование.матриц.......................................................................................390 4.5..Основы.языка.C#............................................................................................ 391 4.5.1..Элементы.синтаксиса.языка.C#.............................................................. 392 Алфавит.и.слова.C#..............................................................................................392 Структура.программы.C#......................................................................................393 Переменные.и.константы.С#.................................................................................395 Объявление.переменных..Область.видимости.и.время.жизни...............................396 4.5.2..Система.типов........................................................................................ 397 Тип.object..............................................................................................................397 Типы.значений.и.ссылочные.типы..........................................................................397 Системные.встроенные.типы.................................................................................399 Приведение.типов.................................................................................................400 Логический.тип......................................................................................................401 Строковые.и.символьные.типы..............................................................................401 Организация.системы.типов..................................................................................403 4.5.3..Массивы................................................................................................. 404 4.5.4..Операции.и.выражения........................................................................... 407 4.5.5..Класс.и.структура................................................................................... 409 Классы..................................................................................................................409 Интерфейсы..........................................................................................................414 Глава 5. MATLAB Builder для Excel ........................................................415 5.1..Установка.MATLAB.Builder.EX.......................................................................... 416 5.2..Создание.компонента.Excel.для.Мастера.функций.......................................... 418 5.2.1..Построение.компонента.матричной.математики..................................... 418 Использование.командной.строки.для.построения.компонент..............................421 5.2.2..Установка.созданного.компонента.......................................................... 422 5.2.3..Общие.вопросы.создания.компонента.Excel.Builder................................ 423 Процедура.создания.компонента..........................................................................423 Регистрация.компонента.......................................................................................424 Разработка.новых.версий......................................................................................425 Получение.информации.о.компоненте..................................................................426
Оглавление 5.3..Использование.созданного.приложения.в.Excel.............................................. 427 5.4..Создание.дополнения.с.пользовательским.интерфейсом............................... 433 5.4.1..Построение.компонента......................................................................... 433 Подготовка.файлов...............................................................................................433 Создание.компонента...........................................................................................435 5.4.2..Разработка.пользовательского.интерфейса.дополнения........................ 435 Регистрация.библиотеки.Fourier._1_0.dll.компонента.............................................435 Выбор.библиотек,.необходимых.для.разработки.дополнения...............................436 Создание.кода.VBA.главного.модуля.приложения.................................................436 Создание.формы.Visual.Basic................................................................................439 Добавление.пункта.меню.Spectral.Analysis.в.Excel..................................................442 Сохранение.дополнения.......................................................................................443 5.4.3..Тестирование.дополнения...................................................................... 443 5.4.4..Упаковка.и.распространение.дополнения............................................... 445 5.4.5..Инсталляция.приложения.и.его.интегрирование.в.Excel.......................... 446 5.4.6..Обсуждение.программы.VBA.................................................................. 447 5.4.7..Использование.флагов........................................................................... 450 5.5..Библиотека.утилит.Excel.Builder...................................................................... 452 5.5.1..Функции.MATLAB.Builder.для.Excel.......................................................... 453 5.5.2..Библиотека.утилит.Excel.Builder.............................................................. 454 Класс.MWUtil.........................................................................................................455 Класс.MWFlags......................................................................................................456 Class.MWStruct......................................................................................................458 Класс.MWField.......................................................................................................458 Класс.MWComplex.................................................................................................459 Class.MWSparse.....................................................................................................460 Класс.MWArg.........................................................................................................460 Перечисления.......................................................................................................460 5.6..Справка.по.VBA............................................................................................... 461 Глава 6. MATLAB Production Server ........................................................469 6.1..Общие.сведения.о.MATLAB.Production.Server.................................................. 469 6.1.1..Назначение.MATLAB.Production.Server.................................................... 470 6.1.2..Инсталляция.и.конфигурирование.сервера............................................. 471 Установка.MATLAB.Production.Server.....................................................................471 Конфигурирование...............................................................................................472 Создание.локального.экземпляра.MATLAB.Production.Server.................................473 Запуск.сервера.....................................................................................................474 Проверка.состояния.сервера................................................................................475 Остановка.сервера................................................................................................475 Заключительные.замечания..................................................................................476 6.1.3..Подготовка.программ.MATLAB.для.MATLAB.Production.Server................. 477 Содержание.readme-файла.................................................................... 479 6.2..Работа.с.MATLAB.Production.Server................................................................. 480 6.2.1..Клиентское.программирование.на.Java.................................................. 481 Общие.требования.к.Java-коду..............................................................................481 Листинг.Java-кода.................................................................................................483 Компиляция.и.запуск.приложения.........................................................................485 Распространение.клиентского.приложения...........................................................485
Оглавление 6.2.2..Клиентское.программирование.на.C#..NET............................................. 486 Создание.проекта.Microsoft.Visual.Studio...............................................................486 Создание.ссылки.на.клиентскую.библиотеку.........................................................486 Разработка..NET.интерфейса.в.C#........................................................................487 Написание.построение.и.запуск..NET.приложения................................................487 Список литературы ................................................................490 Перечень примеров программ .................................................492 Предметный указатель ...........................................................495
Предисловие Как известно, система MATLAB является одной из наиболее мощных универсальных систем компьютерной математики. Возможности системы MATLAB уникальны. Список основных функций MATLAB (не включая специализированных функций пакетов расширений) содержит более 1000 наименований. Кроме встроенных процедур, система MATLAB имеет чрезвычайно легкий в использовании язык программирования высокого уровня, основанный на таких мощных типах данных, как многомерные числовые массивы, массивы символов, ячеек и структур MATLAB. Однако программы, написанные на m-языке MATLAB, работают только в среде MATLAB. Поэтому хотелось бы иметь нечто подобное для других языков программирования. Оказывается это возможно! Система MATLAB предлагает классы, которые представляют основные типы данных MATLAB для многих других языков программирования. Первоначально такие классы были разработаны для языка С/С++ в составе математической библиотеки С/С++ MATLAB. Эта библиотека включает огромное количество математических функций, которые можно использовать в С/С++. Начиная с выпуска MATLAB R14 (2007 г.), корпорация MathWorks отказалась от дальнейшего развития математических библиотек С/С++, существенно изменив и расширив возможности пакета MATLAB Compiler – Компилятора MATLAB. При этом были разработаны такие расширения MATLAB Compiler, как: MATLAB Builder для Java – пакет расширения для создания и использования компонентов для языка Java; MATLAB Builder для Excel – пакет расширения для создания и использования дополнений (Add-Ins) Excel; MATLAB Builder для .NET – пакет расширения для создания и использования компонентов в среде .NET Framework. Для обеспечения работы компонентов, созданных Компилятором MATLAB, разработана универсальная среда MCR исполнения компонентов MATLAB. Программа, созданная на других языках программирования и использующая скомпилированные функции MATLAB, выполняется только с MCR. Сама система MATLAB для работы приложения не требуется. Созданные компоненты MATLAB и приложения, их использующие, могут свободно распространяться вместе со средой исполнения MCR. Данная книга является обновленным и переработанным изданием книги [См2]. Рассмотрим кратко содержание книги по главам. Первая глава содержит первоначальные сведения о системе MATLAB R2014a. Глава предназначена для читателей, которые владеют программированием, но не на MATLAB. Глава содержит описание работы с числовыми массивами, мас-
сивами символов, ячеек и структур, а также основы программирования в среде MATLAB, включая работу с таблицами Excel и создание графического интерфейса пользователя. Вторая глава посвящена описанию пакета расширения MATLAB Compiler версии 5.1 (для MATLAB R2014a). Возможности Компилятора огромны, он поддерживает почти все функциональные возможности MATLAB. Компилятор MATLAB из m-файлов MATLAB может создать C или C++ автономные консольные приложения и библиотеки общего доступа (dll). Изложение материала сопровождается обсуждением простых примеров. Предполагается, что читатель знаком с основами языка С++. Глава 3 посвящена созданию компонентов для Java и приложений Java, которые используют компоненты MATLAB. Рассмотрены следующие вопросы: установка и конфигурирование Java Builder для создания пакетов Java; создание из m-функций MATLAB пакетов Java Builder и их использование в консольных Java приложениях; создание приложений с графическим интерфейсом пользователя в среде проектирования NetBeans, в которых используются пакеты, созданные на Java Builder. Кроме того, рассмотрены некоторые особенности программирования на Java при использовании пакетов Java Builder, описание классов MWArray MATLAB для Java и справочные сведения по языку Java. Глава 4 посвящена созданию .NET-компонентов и приложений .NET, которые используют компоненты MATLAB. Вначале кратко излагаются необходимые сведения о платформе .NET Framework и среде проектирования Visual Studio 2013. Далее подробно на примерах рассматривается создание компонентов и консольных C#-приложений, которые используют созданные компоненты. Подробно на примерах рассмотрены создания приложений с графическим интерфейсом пользователя в среде проектирования Visual Studio, в которых используются компоненты, созданные на .NET Builder. Разобрано построение следующих приложений: • вычисление однократных и двойных интегралов; • решение обыкновенных дифференциальных уравнений и систем дифференциальных уравнений; • вейвлет-анализ сигналов: открытие, обработка и сохранение файлов. В конце главы обсуждаются некоторые особенности программирования на C# при использовании компонентов .NET Builder и справочные сведения по языку C#. В главе 5 рассматривается создание компонентов для Excel и VBA-приложений, которые используют эти компоненты MATLAB. Система MATLAB предлагает свое, фирменное, дополнение к Excel для использования при работе в Excel скомпилированных функций MATLAB. Это дополнение называется "Мастер функций". Рассмотрена работа с Мастером функций. Кроме того, рассмотрено создание на VBA собственных дополнений c графическим интерфейсом для решения различных математических задач с данными Excel. Также рассмотрены некоторые особенности программирования на Visual Basic при использовании компонентов Предисловие
Предисловие Excel Builder и классов MWArray Компилятора MATLAB и справочные сведения по языку Visual Basic. Глава 6 посвящена описанию работы с пакетом расширения MATLAB Production Server (MPS). Этот пакет позволяет запускать любые MATLAB- программы по сети, имея на локальной машине лишь установленное программное обеспечение MPS и среду исполнения MCR. Веб-приложения, базы данных и корпоративные приложения используют MATLAB-программы, которые исполняются на MATLAB Production Server через простую клиентскую библиотеку. Можно использовать MATLAB и MATLAB Compiler для создания своих приложений и внедрять их непосредственно на MATLAB Production Server без перекодирования или создания специальной инфраструктуры для управления ими. Схема работы MATLAB Production Server достаточно простая. Программа на MATLAB упаковывается с помощью Компилятора MATLAB и размещается на сервере MPS. Теперь к этой программе можно обратиться по сети из других приложений. Запрашиваемая программа будет выполняться на сервере MPS, что обеспечивает экономию машинных ресурсов. На сайте «ДМК Пресс» (www.dmkpress.com) имеются приложения с исходными текстами примеров программ, рассматриваемых в данной книге. При написании книги использовалось свободное программное обеспечение jdk1.8.0_25 и NetBeans 8.0.1, а также ознакомительные версии Visual Studio 2013 и MATLAB 2014a.
глава 1. система компьютерной математики MATLAB В данной главе мы рассмотрим начальные вопросы системы MATLAB – крупнейшей и старейшей системы компьютерной математики: • общее описание системы MATLAB, инструментальные средства, типы данных MATLAB; • основы работы с MATLAB: операции с массивами, решение математических задач, графика в MATLAB; • программирование в MATLAB; • создание графического интерфейса пользователя в MATLAB; • совместная работа Microsoft Excel и MATLAB; • массивы символов, ячеек и структур MATLAB. Введение MATLAB – это одна из старейших систем компьютерной математики, построенная на применении матричных операций. Название MATLAB происходит от слов matrix laboratory (матричная лаборатория). Матрицы широко применяются в сложных математических расчетах. Однако в настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных систем компьютерной математики. В MATLAB используются такие мощные типы данных, как многомерные числовые массивы, массивы символов, ячеек и структур, что открывает широкие возможности применения системы во многих областях науки и техники. В данной главе мы кратко рассмотрим некоторые вопросы работы в системе MATLAB. Описание системы MATLAB и ее применения к решению различных задач математического анализа, обработки данных, решения дифференциальных уравнений и к графике можно найти в Help MATLAB и в любом руководстве по MATLAB, см. напр. [В], [ККШ], [По], [ЧЖИ], [Кр], [Д], [ГЦ], [Ан] и [См2]. Отметим также Internet-ресурсы [MW]. Система MATLAB была разработана в конце 70-х гг. и широко использовалась на больших ЭВМ. В дальнейшем были созданы версии системы MATLAB для пер-
Глава 1. Система компьютерной математики MATLAB сональных компьютеров с различными операционными системами и платформами. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. Одной из основных задач системы является предоставление пользователям мощного языка программирования высокого уровня, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования для реализации численных методов. Система MATLAB объединяет вычисление, визуализацию и программирование в удобной для работы окружающей среде, где задачи и решения выражаются в привычном математическом виде. Обычные области использования MATLAB: математика и вычисления, разработка алгоритмов, моделирование, анализ данных и визуализация, научная и техническая графика, разработка приложений. В университетских кругах MATLAB – это стандартный учебный инструмент для вводных и продвинутых курсов в математике, в прикладных исследованиях и науке. В промышленности, MATLAB – это инструмент высокой производительности для исследований, анализа и разработки приложений. Поразительная легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (Toolboxes), намного расширивших сферы применения системы. Пакеты расширений представляют собой обширные библиотеки функций MATLAB (m-файлов), которые созданы для использования MATLAB в решении специальных задач. Пакеты расширения (их число более 50) включают такие интересные области, как обработка сигналов, системы управления, нейронные сети, нечеткая логика, биоинформатика, вейвлеты, моделирование и много других. Возможности системы MATLAB уникальны. Список основных функций MATLAB (не включая специализированных функций пакетов расширений) содержит более 1000 наименований. 1.1. Общее описание системы MATLAB Система MATLAB состоит из пяти главных частей. Среда разработки. Это набор инструментов и средств обслуживания, которые помогают использовать функции и файлы MATLAB. Многие из этих инструментов – графические пользовательские интерфейсы. Среда разработки включает рабочий стол MATLAB и командное окно, окно истории команд, редактор-отладчик, рабочее пространство и браузер для просмотра помощи. Библиотека математических функций MATLAB. Это обширное собрание вычислительных алгоритмов от элементарных функций типа суммы, синуса, косинуса и комплексной арифметики, до более сложных функций типа транспонирования, обращения матриц, нахождения собственных значений матриц, функций Бесселя и быстрого преобразования Фурье.
Язык MATLAB. Это язык высокого уровня, основанный на работе с матричными массивами, с функциями управления потоками, структурами данных, вводом/выводом и объектно-ориентированным программированием. Он позволяет быстро и легко освоить создание небольших программ, а также допускает возможность создания полных и сложных прикладных программ. Графика. MATLAB имеет обширные средства для графического отображения векторов и матриц, а также создания аннотаций и печати этих графиков. Графика MATLAB включает функции для двумерной и трехмерной визуализации данных, обработки изображений, анимации, и презентационной графики, а также включает функции, которые позволяют полностью настроить вид графики и создавать законченные графические интерфейсы пользователя на ваших приложениях MATLAB. MATLAB API для других языков (API – Application Program Interface, интерфейс прикладного программирования). Позволяет взаимодействовать с MATLAB и типами данных MATLAB из приложений на других языках; позволяет писать программы на C, C++ и Fortran для вызова их из MATLAB совместно с MATLAB. API включает следующие средства: • MATLAB Engine API – вызов MATLAB из программ на C/C++ и Fortran; • MATLAB COM Automation Server – вызов MATLAB из COM компонент и приложений; • MAT-File API – чтение и запись данных MATLAB из программ на C/C++ и Fortran; • MEX-File Creation API – создание MATLAB-функций их функций на C/C++ и Fortran; • C/C++ Matrix Library API – написание программ на C/C++, которые работают с данными типа mxArray MATLAB; • Fortran Matrix Library API – написание программ на Fortran, которые работают с данными типа mxArray MATLAB. 1.1.1. Инструментальные средства рабочего стола MATLAB Начиная с выпуска R2012b существенно изменился интерфейс MATLAB. Вместо обычного меню и панели инструментов появилась лента инструментов (HOME) на главном окне MATLAB и добавлены еще две ленты-закладки: PLOTS – для выбора способов отображения графиков и APPS – это галерея приложений MATLAB. Кроме того, существенно изменилась справочная система MATLAB. При запуске MATLAB, появляется рабочий стол MATLAB. Он содержит инструменты для управления файлами, переменными и приложениями, связанными с MATLAB. Рабочий стол MATLAB имеет вид как на рисунках. 1.1.1 и 1.1.2. 1.1. Общее описание системы MATLAB
Глава 1. Система компьютерной математики MATLAB Инструментальные средства рабочего стола MATLAB включают следующие компоненты: • меню ленты инструментов; • командное окно (Command Window); • браузер рабочей области (Workspace); • история команд (Command History); • браузер текущего каталога (Current Folder); • редактор массива (Array Editor); • редактор (MATLAB Editor); • профилировщик (Profiler); • окно для изображения графиков. Меню ленты инструментов Вверху справа (рис. 1.1.2) имеется обычное меню: «сохранить», «вырезать», «скопировать», «вставить», «отменить» и кнопка выбора активного окна. Рядом – строка поиска справки. Основную верхнюю часть интерфейса MATLAB занимает лента инструментов из трех вкладок. Вкладка PLOTS предлагает выбрать удобные формы отображения графиков. Вкладка APPS содержит серию приложений в системе MATLAB. Основная вкладка HOME состоит из нескольких блоков меню: FILE, VARIABLE, CODE, ENVIRONMENT, RESOURCES (рис. 1.1.1 и 1.1.2). Первый блок FILE состоит из пяти кнопок: • New Script – открывает редактор для написания программы на m-языке MATLAB; • New – создание нового документа MATLAB. Это может быть: скрипт, функция, пример, класс, системный объект, график, создание графического интерфейса пользователя, задание комбинации клавиш для быстрого вызова; • Open – открыть имеющийся документ; • Find Files и Compare – найти и сравнить файлы. Второй блок VARIABLE также состоит из пяти кнопок: • Import Data – для импорта данных в систему MATLAB; • Save Workspace – сохранение данных из рабочего пространства; • New Variable – открывает специальный редактор для создания новой переменной; • Open Variable – открывает специальный редактор для просмотра и редактирования имеющейся в рабочем пространстве переменой; • Clear Workspace – удаление переменных их рабочего пространства. Третий блок CODE позволяет обратиться к анализатору кода, профилировщику и провести чистку командного окна и истории команд. Четвертый блок ENVIRONMENT позволяет провести пользовательскую настройку системы:
• Layont – вид рабочего стола MATLAB; • Preferences – открывает диалоговое окно для подробной настройки MATLAB; • Set Path – установка путей для папок и файлов, которые предполагаются использовать в работе системы MATLAB; • Parallel – некоторые возможности для параллельных вычислений. Пятый блок RESOURCES – справки и поддержки: • Help – справочная система MATLAB; • Community – открывает сайт MATLAB Central для общения по вопросам системы MATLAB (http://www.mathworks.com/matlabcentral/); • Request Support – запрос поддержки системы MATLAB; • Add Ons – запрос на дополнительные возможности поддержки MATLAB (http://www.mathworks.com). Рис. 1.1.1..Рабочий.стол.MATLAB.(левая.часть) 1.1. Общее описание системы MATLAB Лента инструментов Текущий каталог Строка ввода функции Командное окно
Доступ онлайн
В корзину