Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

MATLAB. Программирование на Visual C#, Borland JBuilder, VBA : учебный курс

Покупка
Артикул: 816882.01.99
Доступ онлайн
231 ₽
В корзину
Данная книга посвящена изложению методов использования математических процедур 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. Программирование на Visual C#, Borland JBuilder, VBA : учебный курс : учебное пособие / Н. К. Смоленцев. - 3-е изд. - Москва : ДМК Пресс, 2023. - 457 с. - ISBN 978-5-89818-500-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107170 (дата обращения: 04.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
MATLAB

Ïðîãðàììèðîâàíèå íà Visual C#, 

Borland JBuilder, VBA

Ó÷åáíûé êóðñ

Н. К. Смоленцев

Ìîñêâà, 2023

Рекомендовано научнометодическим советом

по математике и механике УМО

по классическому университетскому образованию РФ

в качестве учебного пособия для студентов высших учебных заведений,
обучающихся по группе математических и механических направлений

и специальностей

3-е издание, электронное
УДК 519.68
ББК 32.913
С51

С51
Смоленцев, Николай Константинович.
MATLAB. Программирование на Visual C#, Borland JBuilder, VBA : учебный 
курс / Н. К. Смоленцев. — 3-е изд., эл. — 1 файл pdf : 457 с. — Москва : ДМК Пресс, 
2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; 
экран 10". — Текст : электронный.
ISBN 978-5-89818-500-8
Данная книга посвящена изложению методов использования математических процедур 
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 приложений.

УДК 519.68 
ББК 32.913

Электронное издание на основе печатного издания: MATLAB. Программирование на Visual C#, 
Borland JBuilder, VBA : учебный курс / Н. К. Смоленцев. — 2-е изд. — Москва : ДМК Пресс, 2014. — 
456 с. — ISBN 978-5-94074-771-0. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и 
какими бы то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок 
все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых 
сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием 
книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты 
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-500-8
© Смоленцев Н. К.
© Оформление, издание, ДМК’Пресс, 2014
Краткое содержание

Предисловие ................................................................... 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
Содержание

Предисловие................................................................ 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

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
Создание Windowsприложений
6

Среда разработки 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

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
Создание Windowsприложений
8

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

Типы данных ............................................................ 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
Создание Windowsприложений
10

Методы для использования на разреженных
массивах MWArray.................................................... 221
3.3.2. Использование MWNumericArray ........................... 222
Построение различных типов числовых массивов.... 223
Методы уничтожения MWNumericArray..................... 227
Методы для получения информации
о MWNumericArray.................................................... 227
Методы доступа к элементам
и задания элементов  MWNumericArray .................... 228
Методы копирования, преобразования
и сравнения массивов MWNumericArray ................... 232
Методы возвращения значений специальных
констант .................................................................. 233
Методы toTypeArray и getTypeArray
преобразования массивов данных ........................... 234
Методы работы с разреженными массивами
MWNumericArray ...................................................... 235
3.3.3. Работа с логическими, символьными
и массивами ячеек ......................................................... 237
3.3.4. Использование MWClassID .................................... 239
Поля MWClassID ....................................................... 240
Методы класса MWClassID ....................................... 240
3.3.5. Использование класса MWComplexity .................... 240

3.4. Примеры приложений Java ......................................... 241

3.4.1. Пример спектрального анализа ............................. 241
Построение компонента .......................................... 241
Разработка приложения, использующего
компонент ............................................................... 244
3.4.2. Пример матричной математики............................. 248
Построение компонента .......................................... 251
Разработка приложения, использующего
компонент ............................................................... 250

3.5. Некоторые вопросы программирования ..................... 255

3.5.1. Импорт классов и создание экземпляра класса..... 255
Содержание
11

3.5.2. Правила обращения к методам Java Builder ........... 255
Стандартный интерфейс.......................................... 256
Интерфейс mlx......................................................... 257
3.5.3. Правила преобразования данных MATLAB и Java ... 258
Автоматическое преобразование в тип MATLAB ....... 259
Преобразование типов данных вручную ................... 260
3.5.4. Аргументы методов Java Builder ............................ 262
Передача неопределенного числа параметров ........ 262
Получение информации о результатах методов ....... 264
Передача объектов Java по ссылке .......................... 266
3.5.5. Обработка ошибок ................................................ 266
Обработка исключений MWException ....................... 266
Обработка общих исключений ................................. 268
3.5.6. Управление собственными ресурсами .................. 269
Использование «сборки мусора» JVM ...................... 269
Использование метода dispose ................................ 269

3.6. Среда проектирования JBuilder .................................. 271

3.7. Примеры создания приложений
с использованием классов Java Builder ............................. 277

3.7.1. Объем nмерного шара
и площадь (n1)мерной сферы ...................................... 278
Создание компонента Java Builder ........................... 278
Создание приложения JBuilder ................................ 279
Создание пакета
для распространения приложения ........................... 283
3.7.2. Магический квадрат .............................................. 285

Глава 4. MATLAB Builder для Excel.................. 291

4.1. Введение ................................................................... 292

4.1.1.  Создание компонента для Excel ............................ 294
4.1.2. Установка компонента на другие машины.............. 297
Создание Windowsприложений
12

4.1.3. Мастер функций .................................................... 298
4.1.4. Работа с компонентами в Excel .............................. 303

4.2. Общие вопросы создания компонент Excel Builder...... 305

4.2.1. Процедура создания компонента .......................... 305
4.2.2. Регистрация компонента ....................................... 306
4.2.3. Разработка новых версий ...................................... 307

4.3. Пример создания дополнения
для спектрального анализа ............................................... 308

4.3.1. Построение компонента ........................................ 308
4.3.2. Подключение компонента к Excel
с использованием VBA.................................................... 311
4.3.3. Создание формы Visual Basic................................. 314
4.3.4. Добавление пункта меню Spectral Analysis в Excel .... 317
4.3.5. Тестирование дополнения .................................... 319
4.3.6. Упаковка и распространение дополнения.............. 320
4.3.7. Обсуждение программы VBA ................................. 321
4.3.8. Использование флагов .......................................... 324

4.4. Библиотека утилит Excel Builder.................................. 326

4.4.1. Функции MATLAB Builder для Excel ......................... 326
4.4.2. Библиотека утилит Excel Builder............................. 327
Класс MWUtil ............................................................ 328
Класс MWFlags ......................................................... 328
Class MWStruct ......................................................... 330
Класс MWField.......................................................... 330
Класс MWComplex.................................................... 330
Class MWSparse ....................................................... 331
Класс MWArg............................................................ 331
Перечисления.......................................................... 332

4.5. Справка по VBA .......................................................... 333
Содержание
13

Глава 5. Создание компонентов  для .NET
при помощи .NET Builder ..................................... 341

5.1. Среда разработки Microsoft .NET ................................ 342

5.1.1. Основные элементы платформы Microsoft .NET ..... 342
Новые понятия......................................................... 343
5.1.2. Среда выполнения .NET Framework ....................... 346
5.1.3. Стандартная система типов .................................. 347
5.1.4. Общая спецификация языков программирования .... 349

5.2. Основы языка C#........................................................ 349

5.2.1. Элементы синтаксиса языка C#............................. 350
Алфавит и слова C# ................................................. 350
Структура программы C#......................................... 351
Переменные и константы C#.................................... 352
Объявление переменных. Область видимости
и время жизни ......................................................... 353
5.2.2. Система типов ...................................................... 354
Значимые и ссылочные типы.................................... 355
Системные встроенные типы ................................... 356
Приведение типов ................................................... 357
Логический тип ........................................................ 359
Строковые и символьные типы ................................ 359
Перечисления.......................................................... 360
Организация системы типов .................................... 361
5.2.3. Массивы ............................................................... 362
5.2.4. Операции и выражения ......................................... 365
5.2.5. Управление последовательностью выполнения
операторов .................................................................... 367
Оператор if...else условного перехода...................... 367
Оператор switch ....................................................... 368
Оператор цикла while ............................................... 369
Оператор цикла do... while ........................................ 369
Создание Windowsприложений
14

Оператор цикла for .................................................. 370
Операторы break и continue ..................................... 370
5.2.6. Класс и структура .................................................. 371
Классы..................................................................... 371
Структуры ................................................................ 375
Интерфейсы ............................................................ 375
5.2.7. Отражение ............................................................ 376

5.3. Введение в .NET Builder .............................................. 377

5.3.1. Библиотека классов .NET MWArray......................... 379
5.3.2. Правила преобразования данных .......................... 381
5.3.3. Интерфейсы, создаваемые .NET Builder ................ 384
5.3.4. Задание сборки компонента и пространства имен ... 387

5.4. Создание консольный приложений............................. 387

5.4.1. Пример магического квадрата............................... 388
Создание .NET компонента ...................................... 388
Использование компонента в приложении............... 391
5.4.2. Пример матричной математики............................. 395
Создание .NET компонента ...................................... 395
Использование компонента в приложении............... 396
5.4.3. Использование командной строки
для создания компоненты .NET....................................... 400

5.5. Некоторые вопросы программирования
с компонентами .NET Builder ............................................. 402

5.5.1. Обязательные элементы программы ..................... 402
5.5.2. Передача входных параметров .............................. 404
Примеры передачи входных параметров ................. 405
Передача массива вводов........................................ 406
Обработка глобальных переменных MATLAB ............ 407
Обработка возвращаемых значений ........................ 407
Использование запросов MWArray ........................... 408
5.5.3. Обработка ошибок ................................................ 409
5.5.4. Управление родными ресурсами ........................... 410
Содержание
15

5.5.5. Преобразования между типами C#
и MWNumericArray .......................................................... 412
Преобразование скаляров ....................................... 412
Преобразование векторов ....................................... 413
Преобразование матриц.......................................... 414

5.6. Среда разработки Visual Studio 2005........................... 415

5.6.1. Создание нового проекта ...................................... 419

5.7. Программирование на Visual Studio 2005
с использованием математических процедур MATLAB ...... 420

5.7.1. Вычисление интегралов ........................................ 421
Создание .NET компонента ...................................... 421
Создание приложения ............................................. 422
5.7.2. Решение обыкновенных дифференциальных
уравнений ...................................................................... 429
Создание .NETкомпонента ODE ............................... 429
Создание Windowsприложения ............................... 432
5.7.3. Открытие, обработка и сохранение файлов ........... 440
Создание .NETкомпонента....................................... 440
Создание приложения ............................................. 442

Предметный указатель ........................................ 450

Содержание компактдиска.............................. 451

Литература ................................................................. 455
Предисловие

Как известно, система MATLAB® является одной из наиболее мощных универсальных систем компьютерной математики. Возможности системы MATLAB
уникальны. Список основных функций MATLAB (не включая специализированных функций пакетов расширений) содержит более 1000 наименований. Кроме
встроенных процедур, система MATLAB имеет чрезвычайно легкий в использовании язык программирования высокого уровня, основанный на таких мощных
типах данных, как многомерные числовые массивы, массивы символов, ячеек и
структур MATLAB. Программы, написанные на mязыке MATLAB работают
только в среде MATLAB, однако в системе MATLAB предусмотрены возможности создания приложений на других языках программирования, которые используют процедуры, написанные на mязыке MATLAB. До выпуска  MATLAB 6.5 для
этих целей предназначались математические библиотеки С/С++ MATLAB, которые позволяли создавать автономные С/С++ приложения, использующие функции MATLAB.
Начиная с выпуска MATLAB 7, корпорация MathWorks отказалась от дальнейшего использования математических библиотек С/С++, существенно изменив и расширив возможности пакета расширения MATLAB Compiler – Компилятора MATLAB. При этом были разработаны такие расширения MATLAB
Compiler, как: MATLAB Builder for Java – паект расширения для создания и использования компонентов для языка Java; MATLAB Builder for Excel – паект расширения для создания и использования дополнений (AddIns) Excel; MATLAB
Builder for .NET – паект расширения для создания и использования компонентов
в среде .NET Framrwork. Для обеспечения работы компонентов, созданных Компилятором MATLAB, разработана универсальная среда MCR исполнения компонентов MATLAB. Программа, созданная на других языках программирования и
использующая скомпилированные функции MATLAB, выполняется только
с MCR. Сама система MATLAB для работы приложения не требуется. Созданные
компоненты MATLAB и приложения, их использующие, могут свободно распространяться вместе со средой исполнения MCR.
В данной книге рассматривается использование Компилятора MATLAB и его
расширений: MATLAB Builder for Java, MATLAB Builder for Excel и MATLAB
Builder for .NET. Данное издание является продолжением книги [ППС], в которой
изложены математические библиотеки С/С++ MATLAB и показано их использование для создания Windowsприложений на Borland C++ Builder. Особенности
программирования для систем, отличных от Windows, можно найти в документации MATLAB®.
Рассмотрим кратко содержание данной книги по главам.
Первая глава содержит первоначальные сведения о системе MATLAB. Она
предназначена для читателей, которые владеют программированием, но не на
MATLAB. Глава содержит описание работы с числовыми массивами, массива
Предисловие
17

ми символов, ячеек и структур, а также основы программирования в среде
MATLAB.
Вторая глава посвящена описанию пакета расширения  MATLAB Compiler версии 4.6 (для MATLAB R2007a). Возможности Компилятора огромны. Компилятор
MATLAB поддерживает почти все функциональные возможности MATLAB.  Компилятор MATLAB из mфайлов MATLAB может создать C или C++ автономные
консольные приложения и библиотеки общего доступа (dll). Изложение материала сопровождается обсуждением тестовых примеров MATLAB (эти примеры входят в инсталляционный пакет MATLAB Compiler). В конце главы дано краткое
описание математических библиотек С/С++ MATLAB 6.5 и приведены примеры
их использования.
Глава 3 посвящена созданию компонентов для Java и приложений Java, которые используют компоненты MATLAB. Вначале кратко излагаются необходимые
сведения о языке Java. Подробно на примерах рассматривается создание компонентов и консольных Javaприложений, которые используют созданные компоненты (учебные примеры MATLAB). В конце главы подробно рассмотрено создание Windowsприложений на Borland JBuilder, которые используют упакованные
в компоненты процедуры MATLAB.
В главе 4 рассматривается создание компонентов для Excel и VBAприложений, которые используют эти компоненты MATLAB. Система MATLAB предлагает свое, фирменное, дополнение к Excel для использования при работе в Excel
скомпилированных функций MATLAB. Это дополнение называется «Мастер
функций». Рассмотрена работа с Мастером функций. Кроме того, рассмотрено
создание на VBA собственных дополнений для решения различных математических задач с данными Excel.
Глава 5 посвящена созданию .NETкомпонентов и приложений .NET, которые
используют компоненты MATLAB. Вначале кратко излагаются необходимые сведения о .NET Framework  и языке программирования C#. Подробно на примерах
рассматривается создание компонентов и консольных C#приложений, которые
используют созданные компоненты (учебные примеры MATLAB). В конце главы
подробно рассмотрено создание Windowsприложений на Visual Studio 2005, которые используют процедуры MATLAB.
Книга имеет приложение в виде компактдиска с исходными текстами примеров программ, рассматриваемых в данной книге.
Книга предназначена студентам и преподавателям ВУЗов по специальностям,
близким к прикладной математике, профессиональным программистам, которые
сталкиваются с проблемами реализации математических алгоритмов и MATLABпрограммистам, которые хотят использовать другие языки программирования
для реализации алгоритмов MATLAB в виде законченных и независимых от
MATLAB приложений.
Освоение технологии использования колоссальных математических возможностей MATLAB в других языках программирования позволит создавать полноценные Windowsприложения с развитой графической средой, в которых возможна
Создание Windowsприложений
18

реализация сложных математических алгоритмов для решения научнотехнических задач.
Книга написана при содействии корпорации MathWorks в соответствии с программой MathWorks поддержки книг, посвященных MATLAB®. Автор выражает
благодарность компании MathWorks за предоставленную возможность использования документации и лицензионного программного обеспечения MATLAB®

R2007a для написания этой книги.
Глава 1

Основы работы
в системе MATLAB®

1.1. Система компьютерной
математики MATLAB®................ 20
1.2. Основы работы
с MATLAB® ................................ 31
1.3. Массивы символов.............. 49
1.4. Массивы ячеек .................... 55
1.5. Массивы структур ............... 62
1.6. Программирование
в среде MATLAB ......................... 67
Основы работы в системе MATLAB®
20

MATLAB® – это одна из старейших систем компьютерной математики, построенная на применении матричных операций. Название MATLAB происходит от слов
matrix laboratory (матричная лаборатория). Матрицы широко применяются
в сложных математических расчетах. Однако в настоящее время MATLAB далеко
вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных систем компьютерной математики. В MATLAB
используются такие мощные типы данных, как многомерные числовые массивы,
массивы символов, ячеек и структур, что открывает широкие возможности применения системы во многих областях науки и техники. В данной главе мы кратко
рассмотрим некоторые вопросы работы в системе MATLAB.
Описание системы MATLAB® и ее применения к решению различных задач
математического анализа, обработки данных, решения дифференциальных уравнений и к графике можно найти в Help MATLAB и в любом руководстве по
MATLAB, см. например [ККШ], [Пот], [ЧЖИ], [Кр], [Ма], [Ко], [Д], [ГЦ], [Ан] и
[ППС]. Отметим также интернетресурсы  [W].

1.1. Система компьютерной
математики MATLAB®

Система MATLAB® была разработана в конце 70х гг. и широко использовалась
на больших ЭВМ. В дальнейшем были созданы версии системы MATLAB для
персональных компьютеров с различными операционными системами и платформами. К расширению системы были привлечены крупнейшие научные школы
мира в области математики, программирования и естествознания. Одной из основных задач системы является предоставление пользователям мощного языка
программирования высокого уровня, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования для реализации численных методов.
Система MATLAB® объединяет вычисление, визуализацию и программирование в удобной для  работы окружающей среде, где задачи и решения выражаются
в привычном математическом виде. Обычные области использования MATLAB:
математика и вычисления, разработка алгоритмов, моделирование, анализ данных и визуализация, научная и техническая графика, разработка приложений.
В университетских кругах MATLAB® – это стандартный учебный инструмент для
вводных и продвинутых курсов в математике, в прикладных исследованиях и науке. В промышленности, MATLAB – это инструмент высокой производительности для исследований, анализа и разработки приложений.
Поразительная легкость модификации системы и возможность ее адаптации
к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (Toolboxes), намного расширивших сферы применения
системы. Пакеты расширений представляют собой обширные библиотеки функций
MATLAB® (mфайлы), которые созданы для использования MATLAB в решении
специальных задач. Пакеты расширения (их число более 50) включают такие инте
ресные области, как обработка сигналов, системы управления, нейронные сети,
нечеткая логика, биоинформатика, вейвлеты, моделирование и много других.
Возможности системы MATLAB® уникальны. Список основных функций
MATLAB® (не включая специализированных функций пакетов расширений) содержит более 1000 наименований.

1.1.1. Основные компоненты системы MATLAB

Система MATLAB состоит из пяти главных частей.
Среда разработки. Это набор инструментов и средств обслуживания, которые
помогают использовать функции и файлы MATLAB. Многие из этих инструментов – графические пользовательские интерфейсы. Среда разработки включает рабочий стол MATLAB и командное окно, окно истории команд, редакторотладчик,
и браузеры для просмотра помощи, рабочего пространства, файлов и путей поиска.
Библиотека математических функций MATLAB. Это обширное собрание вычислительных алгоритмов от элементарных функций типа суммы, синуса, косинуса и комплексной арифметики, до более сложных функций типа транспонирования, обращения матриц, нахождения собственных значений матриц, функций
Бесселя и быстрого преобразования Фурье.
Язык MATLAB. Это язык высокого уровня, основанный на работе с матричными массивами, с функциями управления потоками, структурами данных, вводом/выводом и объектноориентированным программированием. Он позволяет
быстро и легко освоить создание небольших программ, а также имеется возможность создания полных и сложных прикладных программ.
Графика. MATLAB имеет обширные средства для графического отображения
векторов и матриц, а также создания аннотаций и печати этих графиков. Графика
MATLAB включает функции высокого уровня для двумерной и трехмерной визуализации данных, обработки изображений, анимации, и презентационной графики. Графика MATLAB также включает функции низкого уровня, которые позволяют полностью настроить вид графики и создавать законченные графические
интерфейсы пользователя на ваших приложениях MATLAB.
MATLAB API (Application Program Interface, интерфейс прикладного программирования). Это библиотека, которая позволяет писать программы C и
Fortran совместно с MATLAB. API включает средства для вызова подпрограмм из
MATLAB (динамическая связь), вызывая MATLAB как вычислительный механизм, и для чтения и записи MATфайлов.

1.1.2. Инструментальные средства
рабочего стола MATLAB

При запуске MATLAB, появляется рабочий стол MATLAB. Он содержит  инструменты (графические пользовательские интерфейсы) для управления файлами,
переменными и приложениями, связанными с MATLAB. Рабочий стол MATLAB
имеет вид как на рис. 1.1.1.

Система компьютерной математики MATLAB®
Основы работы в системе MATLAB®
22

Инструментальные средства рабочего стола MATLAB включают следующие
компоненты:
• командное окно (Command Window);
• браузер рабочей области (Workspace Browser);
• редактор массива (Array Editor);
• история команд (Command History);
• браузер текущего каталога (Current Directory Browser);
• кнопка старта (Start);
• браузер справки (Help Browser);
• редактор/отладчик (Editor/Debugger);
• профилировщик (Profiler).
Замечание 1. Некоторые характеристики для настольных инструментальных
средств можно определить, выбирая Preferences из меню File.
Рассмотрим подробнее инструментальные средства рабочего стола.
Командное окно (Command Window). Используется для ввода команд, переменных и выполнения функции и mфайлов. Команду можно вызвать в строке
ввода – это последняя строка с символом приглашения (>>). Выполненная команда перестает быть активной, она недоступна для редактирования. Ранее исРис. 1.1.1. Рабочий стол MATLAB

Рабочая
область
История
команд
Строка ввода
функции
Текущий
каталог
Командное
окно
Доступ онлайн
231 ₽
В корзину