УДК 519.68
ББК 32.913
С51
С51 Смоленцев Н. К.
MATLAB: Программирование на Visual C#, Borland C#, JBuilder, VBA:
Учебный курс – М.: ДМК Пресс, 2 0 1
4 – 456 с.: ил.
ISBN 978-5-94074-771-0
Данная книга посвящена изложению методов использования математических
процедур MATLAB®
при создании Windowsприложений, работающих независи
мо от MATLAB. Книга содержит введение в MATLAB и описание пакетов расши
рения MATLAB, позволяющих создавать компоненты, которые могут быть ис
пользованы при программировании на С++, Borland JBuilder, VBA в Excel и Visual
Studio 2005. Кратко изложены необходимые сведения по языкам программирова
ния Java и C#. Подробно рассматриваются примеры создания программ на Borland
JBuilder, дополнений к Excel и программ на Visual C#, которые используют матема
тические процедуры, разработанные на MATLAB. Освоение технологии использова
ния математических возможностей MATLAB в других языках программирования
позволит создавать полноценные Windowsприложения с развитой графической
средой, в которых возможна реализация сложных математических алгоритмов.
Книга предназначена студентам и преподавателям ВУЗов по специальностям,
близким к прикладной математике, профессиональным программистам, которые
сталкиваются с проблемами реализации математических алгоритмов, и MATLAB
программистам, которые хотят использовать другие языки программирования для
реализации алгоритмов MATLAB в виде законченных и независимых от MATLAB
приложений.
MATLAB®
is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks
software or related products does not constitute endorsement or sponsorship by The
software.
УДК 519.68
ББК 32.913
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то
ни было форме и какими бы то ни было средствами без письменного разрешения вла дельцев
авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность
технических ошибок все равно существует, издательство не может гарантировать абсолютную
точность и правильность приводимых сведений. В связи с этим издательство не несет ответ
ственности за возможные ошибки, связанные с использованием книги.
ISBN 978-5-94074-771-0
© Смоленцев Н. К.
© Оформление, издание, ДМКПресс, 2 0 1 4
does not warrant the accuracy of the text or exercises in this book. This book’s use or discussion of
MATLAB®
MathWorks of a particular pedagogical approach or particular use of the MATLAB®
Стр.3
Краткое содержание
Предисловие ................................................................... 16
Глава 1. ОСНОВЫ РАБОТЫ В СИСТЕМЕ
MATLAB® ............................................................................ 19
Глава 2. КОМПИЛЯТОР MATLAB®
ВЕРСИИ 4.6 ...................................................................... 85
Глава 3. СОЗДАНИЕ КОМПОНЕНТОВ
ДЛЯ JAVA ПРИ ПОМОЩИ JAVA BUILDER ................ 171
Глава 4. MATLAB BUILDER ДЛЯ EXCEL ................... 291
Глава 5. СОЗДАНИЕ КОМПОНЕНТОВ
ДЛЯ .NET ПРИ ПОМОЩИ .NET BUILDER ................ 341
Предметный указатель .............................................. 450
Содержание компактдиска ..................................... 451
Литература .................................................................... 455
Стр.4
Содержание
Предисловие................................................................ 16
Глава 1. Основы работы в системе
MATLAB®.......................................................................... 19
1.1. Система компьютерной математики MATLAB®
.............. 20
1.1.1. Основные компоненты системы MATLAB ................. 21
1.1.2. Инструментальные средства рабочего стола
MATLAB ............................................................................ 21
1.1.3. Константы и системные переменные MATLAB ......... 27
1.1.4. Типы данных MATLAB............................................... 28
1.2. Основы работы с MATLAB®
............................................ 31
1.2.1. Запуск MATLAB и начало работы.............................. 31
1.2.2. Задание массивов................................................... 33
Задание одномерных массивов ................................. 33
Задание двумерных массивов ................................... 34
1.2.3. Операции над массивами........................................ 36
1.2.4. Решение систем линейных уравнений ..................... 39
Символьная математика пакета расширения
Symbolic Math ............................................................ 40
1.2.5. Мфайлы ................................................................. 42
1.2.6. Чтение и запись текстовых файлов .......................... 44
1.2.7. Операции с рабочей областью
и текстом сессии .............................................................. 47
1.3. Массивы символов ....................................................... 49
1.3.1. Задание массива символов ..................................... 49
1.3.2. Общие функции....................................................... 49
1.3.3. Проверка строк ....................................................... 51
Стр.5
Содержание
5
1.3.4. Операции над строками .......................................... 51
1.3.5. Преобразование чисел в символы и обратно ........... 52
1.3.6. Функции преобразования систем счисления ........... 54
1.3.7. Вычисление строковых выражений.......................... 55
1.4. Массивы ячеек ............................................................. 55
1.4.1. Создание массивов ячеек ....................................... 56
1.4.2. Доступ к данным в ячейках ...................................... 58
1.4.3. Вложенные массивы ячеек ...................................... 60
1.4.4. Массивы ячеек, содержащих структуры .................. 61
1.4.5. Многомерные массивы ячеек .................................. 62
1.5. Массивы структур ........................................................ 62
1.5.1. Построение структур ............................................... 63
1.5.2. Доступ к полям и данным структуры ........................ 64
1.5.3. Многомерные массивы структур ............................. 67
1.6. Программирование в среде MATLAB ............................ 67
1.6.1. Мфункции .............................................................. 67
1.6.2. Операторы системы MATLAB .................................. 73
1.6.3. Управление последовательностью
исполнения операторов ................................................... 76
1.6.4. Вычисление символьных выражений ....................... 80
1.6.5. Ошибки и предупреждения ..................................... 81
1.6.6. Повышение эффективности обработки Мфайлов... 82
Глава 2. Компилятор MATLAB®
версии 4.6 ..................................................................... 85
2.1. Основы работы с Компилятором MATLAB®
.................... 86
2.1.1. Назначение Компилятора MATLAB ........................... 86
2.1.2. Инсталляция и конфигурирование........................... 87
2.1.3. Пример использования Компилятора ...................... 88
Стр.6
6
Создание Windowsприложений
Среда разработки Deployment Tool ............................ 88
Создание приложения ............................................... 90
Использование команды mcc ..................................... 93
2.1.4. Среда выполнения компоненты MATLAB,
библиотека MCR ............................................................... 94
2.1.5. Файлы, создаваемые Компилятором....................... 95
Технологический файл компоненты (CTF) .................. 96
Файлы обертки .......................................................... 96
2.2. Процесс создания компонента MATLAB®
...................... 97
2.2.1. Процесс создания компонента ................................ 97
2.2.2. Управление путями при компиляции ....................... 98
2.3. Работа с mcc и mbuild ................................................. 100
2.3.1. Работа с mcc ......................................................... 101
Обычное использование mcc ................................... 101
Опции mcc ............................................................... 102
Порядок использования опций ................................ 105
Использование файлов групп .................................. 106
Создание файлов обертки ....................................... 107
2.3.2. Использование псевдокомментариев ................... 108
2.3.3. Несколько полезных замечаний ............................ 109
2.3.4. Функция mbuild ..................................................... 110
2.4. Примеры создания автономных
приложений и библиотек .................................................. 111
2.4.1. Библиотеки совместного использования .............. 111
Библиотека совместного использования C .............. 111
Функции, создаваемые из mфайлов ....................... 118
Использование varargin и varargout в интерфейсе
mфункции .............................................................. 119
C++ библиотека совместного использования .......... 119
2.4.2. Создание автономных приложений ....................... 122
Создание кода только из mфайлов ......................... 123
Объединение Мфайлов и кода C или C++ ............... 124
Стр.7
Содержание
7
2.5. Классы C++ Компилятора 4.6 MATLAB®
....................... 127
2.5.1. Основные типы данных .......................................... 127
2.5.2. Класс mwArray ....................................................... 128
Конструкторы .......................................................... 128
Методы копирования ............................................... 130
Методы получения информации о массиве.............. 130
Методы сравнения................................................... 132
Методы доступа к элементам массива mwArray ....... 132
Операторы............................................................... 134
Статические методы ................................................ 135
2.5.3. Класс mwString ...................................................... 136
Конструкторы .......................................................... 136
Методы.................................................................... 136
Операторы............................................................... 136
2.5.4. Класс mwException ................................................ 137
Конструкторы .......................................................... 137
Методы.................................................................... 138
Операторы............................................................... 138
2.6. Внешние интерфейсы ................................................ 138
2.6.1. Процедуры доступа к MATфайлам ........................ 139
2.6.2. Операции с массивами mxArray ............................. 139
2.7. Передача значений между C/C++ double,
mxArray и mwArray ............................................................. 141
2.7.1 Преобразование значений между C/C++ double
и mxArray ........................................................................ 142
Преобразование скаляров ....................................... 142
Преобразование векторов ....................................... 142
Преобразование матриц .......................................... 143
2.7.2 Преобразование значений из C/C++ double
в mwArray........................................................................ 143
Преобразование скаляров ....................................... 143
Преобразование векторов ....................................... 143
Преобразование матриц .......................................... 143
Стр.8
8
Создание Windowsприложений
2.7.3 Преобразование значений из mwArray в C/C++
double............................................................................. 144
Преобразование скаляров ....................................... 145
Преобразование векторов ....................................... 145
Преобразование матриц .......................................... 145
2.7.4. Вспомогательные функции преобразования данных .. 145
Преобразование значений из C/C++ double
в mxArray ................................................................. 146
Преобразование значений из mxArray в C/C++ double . 147
Преобразование из C/C++ double в mwArray ............ 149
Преобразование mwArray в C/C++ double................. 149
Пример создания заголовочного файла ................... 150
2.8. Математическая библиотека C++ MATLAB®
6.5 ........... 151
2.8.1. Расположение файлов математической
библиотеки С++ .............................................................. 152
2.8.2. Документация Математической библиотеки
MATLAB C++ ................................................................... 153
2.8.3. Знакомство с Математической библиотекой
MATLAB C++ ................................................................... 154
2.8.4. Работа с массивами mwArray ................................. 155
Числовые массивы .................................................. 156
2.8.5. Подключение математических библиотек
к Borland C++ Builder ....................................................... 160
2.8.6. Примеры приложений использующих
математические библиотеки .......................................... 161
Чтение, обработка и запись данных ......................... 162
Построение графиков данных mwArray..................... 166
Глава 3. Создание компонентов для Java
при помощи Java Builder ..................................... 171
3.1. Язык программирования Java..................................... 172
3.1.1. Основные элементы программирования на Java ... 173
Первая программа на Java ....................................... 173
Комментарии и имена.............................................. 175
Константы................................................................ 175
Стр.9
Содержание
9
Типы данных ............................................................ 176
Операции ................................................................ 182
Операторы............................................................... 184
Массивы .................................................................. 187
3.1.2. Классы в Java ........................................................ 189
Понятие класса ........................................................ 189
Как описать класс и подкласс .................................. 191
Окончательные члены и классы ................................ 193
Класс Object ............................................................ 193
Опертор new ............................................................ 194
Конструкторы класса ............................................... 194
Статические члены класса ....................................... 195
Метод main() ............................................................ 196
Где видны переменные ............................................ 196
Вложенные классы................................................... 197
Пакеты и интерфейсы .............................................. 197
Структура Javaфайла .............................................. 200
3.2. Введение в Java Builder .............................................. 201
3.2.1. Общие сведения о MATLAB Builder для Java ........... 201
3.2.2. Графический интерфейс пользователя MATLAB
Builder для Java .............................................................. 203
3.2.3. Создание компонента Java ................................... 205
3.2.4. Использование командной строки для создания
компонента .................................................................... 208
3.2.5. Разработка приложения, использующего
компонент ...................................................................... 210
3.2.6. Обсуждение примера магического квадрата ......... 213
3.3. Массивы MATLAB в Java ............................................. 214
3.3.1. Использование методов класса MWArray ............... 215
Построение MWArray ............................................... 216
Методы получения информации о MWArray .............. 216
Методы получения и задания данных в MWArray ....... 218
Методы копирования, преобразования
и сравнивнения массивов MWArray .......................... 220
Стр.10