s.siteapi.org file · web viewГлава 21. Связь matlab и ms office. Среда matlab...

32
Глава 21 Связь MATLAB и MS Office Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое позволяет достаточно просто подготовить отчет по результатам исследований в MATLAB и получить файл в одном из распространенных форматов,включая MS Word и MS Power Point. Отчеты могут являться документами MS Word, которые позволяют выполнить блоки команд MATLAB и сразу же вывести в документ текстовые или графические результаты. Сочетание этой возможности со средствами MS Word по оформлению документов об- М-книги М-книги могут содержать как текст, таблицы, рисунки и другие элементы оформления документа MS Word, так и команды MA TLAB u результаты их выполнения. Причем набираемые команды активизируются прямо из документа (М-книги) и результат помещается также в документ. Пользователь имеет возможность работать со средой MATLAB, сопровождая свои

Upload: phamphuc

Post on 16-Apr-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Глава 21Связь MATLAB и MS OfficeСреда MATLAB допускает интегрирование с MS Word и MS Excel, которое позволяет достаточно просто подготовить отчет по результатам исследований в MATLAB и получить файл в одном из распространенных форматов,включая MS Word и MS Power Point. Отчеты могут являться документами MS Word, которые позволяют выполнить блоки команд MATLAB и сразуже вывести в документ текстовые или графические результаты. Сочетание этой возможности со средствами MS Word по оформлению документов об-

М-книгиМ-книги могут содержать как текст, таблицы, рисунки и другие элементы оформления документа MS Word, так и команды MA TLAB u результаты их выполнения. Причем набираемые команды активизируются прямо из документа (М-книги) и результат помещается также в документ. Пользователь имеет возможность работать со средой MATLAB, сопровождая свои действия текстовыми комментариями, набором формул в редакторе Microsoft Equation, словом, оперируя всеми средствами MS Word. Получающиеся интерактивные документы могут, например, использоваться в качестве учебных пособий для изучения различных разделов математики, физики и других дисциплин или при составлении отчетов о решении задач в MATLAB.Настройка MATLAB и создание М-книги

Page 2: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Перед началом работы над М-книгой необходимо произвести некоторые настройки MATLAB на конфигурацию и версию MS Word, установленного на компьютере. Действия, описанные ниже, производятся только один раз при создании первой М-книги. Продолжение работы над существующими М-книгами и разработка новых не требуют повторных настроек. Разумеется, при переустановке MS Word или MATLAB придется произвести процесс настройки сначала.Суть настройки состоит в том, что создается шаблон документа (М-книги) с необходимыми стилями форматирования и макросами. Создание М-книги вMS Word на основе этого шаблона приведет к встраиванию в інтерфейс редактора MS Word средств для связи с MATLAB.До начала настройки определите каталог, в который будет помещен шаблон для М-книги. В этот каталог следует поместить и копию шаблона normal.dot. Будем для определенности считать, что выполнена стандартная установка MS Office и создан каталог C:\Program Files\Microsoft Office\Templates, где будем размещать файлы шаблонов (далее этот каталог име-нуется просто Templates).Примечание"^}Для пакета MS Office 2000 или старше, установленного в ОС, базирующейся на сетевой платформе, файл шаблона normal.dot находится в каталоге пользователя: C:\Documents and 8еШг^5\имя_пользователя\АррПсаиоп Data\ в под-каталоге Шаблоны или Templates (в зависимости от локализации версии).

Page 3: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Запустите MATLAB и наберите в командном окне notebook('-setup1). Запрашивается номер версии MS Word, установленной на вашем компьютере.Выберите нужную цифру и следуйте появляющимся инструкциям. При правильной установке программного обеспечения выводится сообщение о том,что после нажатия на любую клавишу появится диалоговое окно для указания пути к шаблону normal.dot. В каталоге Templates появился файл m-book.dot, являющийся шаблоном для создания М-книг.Запустите MS Word и установите уровень безопасности, позволяющий подключать макросы. Для русифицированного пакета MS Office 2000 или старше соответствующее диалоговое окно открывается при выборе в меню Сервис пункта Параметры, в котором следует перейти к вкладке Безопасность.Имеется несколько способов, позволяющих начать работу над новой М-книгой. Команда notebook приводит к появлению в MS Word нового файла, основанного на шаблоне m-book.dot. Если MS Word не был открыт, то он запускается после выполнения данной команды. Аналогичный результат получается при создании нового файла при помощи пункта Создать меню Файл MS Word. В диалоговом окне Создание документа на вкладке Общие следует выбрать m-book.dot, установить переключатель документ на панели Создать и нажать ОК.В MS Word создалось меню Notebook, предназначенное для управления и редактирования интерактивной М-книги (рис. 21.1). Далее поясняется использование элементов этого меню.

Page 4: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

В меню Файл добавился пункт New M-book; кроме того, всплывающее меню приобрело дополнительные пункты (рис. 21.2). В список стилей включены стили, определенные в m-book.dot: Autolnit, Calc, Error, Input, NoGraph, Output. По умолчанию используется стиль Обычный.30 Зак. 130916 Часть V. Дополнительные возможности MATLABТаблица Notebook MathType Окно СправкаDefine Input CellDefine Autolnit CellDefine Calc ZoneUndefine CellsPurge Selected Output CellsGroup CellsUngroup_ CellsHide Cell MarkersToggle Graph Output for CellEvaluate CellEvaluate Calc ZoneEvaluate M-bookEvaluate LoopBring MATLAB to FrontNotebook Options..,] ^ шо% -Рис. 21.1. Дополнительное меню Notebook в MS WordEvaluate CellsEvaluate Calc ZoneЧй чрПИрОЕйТЙEvaluate M-BookPurge Output Cells

Page 5: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

СЩ ВставитьА Шрифт...Elf Абзац...: = Список...Щ≫ Гиперссылка...Синонимы •Рис. 21.2. Новый вид контекстного менюв MS WordГлава 21. Связь MATLAB и MS O f f i c e 9 1 7 ПримечаниеВне зависимости от локализации версии MS Word, все элементы, добавляемые при подключении шаблона m-book.dot, имеют англоязычные названия.Наберите в документе какую-нибудь команду MATLAB, к примеруf = sin(3/4*pi)*exp(-l)Поместите курсор в набранную строку и выберите в меню Notebook пунктDefine Input Cell. Обратите внимание, что стиль набранного текста изменился на Input, сам текст заключен в квадратные скобки, а цвет шрифта изменился на зеленый:f = sin(3/4*pi)*exp(-l)Образовалась так называемая ячейка ввода (Input Cell). Для выполнения команды MATLAB, содержащейся в ячейке ввода, следует убедиться, что данная ячейка является текущей, т. е. в ней находится курсор, и выбрать в меню Notebook пункт Evaluate Cell. Ниже ячейки ввода в документе появляется ячейка вывода с результатом в привычном для пользователя MATLAB виде

Page 6: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

f =0.2601Абзацы ячейки вывода имеют стиль Output, начало и конец ячейки ограничены квадратными скобками, а цвет шрифта синий.Группировка ячеекРешение задачи линейной оптимизации о составлении рациона, описанное в главе 16, может быть наглядно продемонстрировано в М-книге. Сначала следует привести условие задачи и вспомогательную таблицу, а затем набрать операторы файл-программы ration (см. листинг 16.1) в тексте документа. Каждый оператор следует заключить в ячейку ввода, выбирая в меню Notebook пункт Define Input Cell либо используя комбинацию клавиш <Alt>+<D>. Содержимое М-книги должно соответствовать листингу 21.2.зние ячеек ввода ;А ' =А =стин[4257-А;6233150

Page 7: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

412]918 Часть V. Дополнительные возможности MATLABЪ = [250; 60; 100; 2 2 0 ] ;b = - b ;f = [44; 35; 100];l b = [ 0 ; 0; 0 ] ;х = l i n p r o g ( f , A, b , [ 3, [ 3 , 1 b , [ ])Несколько команд, выполняемых последовательно, лучше заключить в группу ячеек ввода (Cell Group). Выделите ячейки, подлежащие объединению в группу (в данном случае это все ячейки листинга 21.2) и в меню Notebook выберите пункт Group Cells. Команды образовавшейся группы выполняются из пункта Evaluate Cell меню Notebook или Evaluate Cells всплывающего меню. Сочетание клавиш <Alt>+<Enter> также приводит к активизации команд группы. В результате содержимое М-книги дополняется ячейкойвывода с решением задачи линейного программирования (листинг 21.3).! Листинг 21.3. Группа ввода ячеек и результат ее выполнения IА = [4 б 152 2 05 3 47 3 12];А = -А;b = [250; 60; 100; 220];b = -Ъ;f = [44; 35; 100];lb =[0; 0; 0];

Page 8: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

х = linprog(f, A, b, [ ], [ ], lb, [ ])Optimization terminated,x =13.214316.78576.4286Создание группы ячеек имеет ряд особенностей. Группа не должна содержать текст и другие объекты MS Word или ячейки вывода. Текст, разделяющий ячейки перед их объединением, помещается после группы. Ячейки вывода пропадают, но зато соответствующие им ячейки ввода добавляються в группу.Продолжите работу над М-книгой, создайте группу ячеек ввода с командами, обеспечивающими отображение круговой диаграммы полученного ре Глава 21. Связь MATLAB и MS Office 919шения, и выполните ее (листинг 21.4). Соответствующая ячейка вывода содержит область графического окна с диаграммой (рис. 21.3). Важно понимать, что рисунок в ячейке вывода, заключенной в большие квадратныескобки, является объектом MS Word. Данное обстоятельство позволяет обращаться с ним, как с обычным рисунком, внедряемым в документ.Листинг 21.4. Использование графических команд MATLAB jpie3 (x)НТ = title('Пропорции продуктов в смеси');set(HT, 'FontSize', 16)[здесь размещается рис. 21.3]Пропорции продуктов tсмеси

Page 9: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Рис. 21.3. Рисунок в ячейке вывода листинга 22.4,являющийся объектом MS WordМ-книга может содержать сколь угодно много групп ячеек ввода и отвечающих им ячеек вывода. Ячейки вывода можно перемещать в произвольное место документа, выделив их и перетащив при помощи мыши как обычные абзацы документа MS Word. Повторное выполнение команд, находящихся в соответствующих ячейках ввода, не нарушит расположения ячеек.Работа с М-книгой большого объема становится проще, если предусмотреть разбиение ее на разделы (Calc Zone). Выделенный фрагмент книги выносится в отдельный раздел выбором пункта Define Calc Zone меню Notebook. Выполнение команд всех ячеек или групп ячеек ввода раздела производится при помощи пункта Evaluate Calc Zone, а сразу всей М-книги — Evaluate М-Book. Ошибка в командах ячеек ввода, возникающая в процессе выполнения всей М-книги, приводит к останову вычислений. Для автоматического перехода к выполнению следующей ячейки необходимо установить флаг Stop evaluating on error в диалоговом окне Notebook Options (рис. 21.4), появляющемся при выборе одноименного пункта в меню Notebook.Переменные различных разделов являются общими, к примеру, если в ячейке одного раздела переменной х было присвоено некоторое значение, то х можно использовать и в остальных разделах. Все переменные М-книги —глобальные. Более того, если в редакторе MS Word открыто несколько М-книг, то их переменные определены в одной рабочей среде.

Page 10: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Открытие М-книги в MS Word не приводит к автоматическому выполнению содержимого ячеек ввода. Часто требуется инициализировать некоторыепеременные без вмешательства пользователя. Команды ячеек, имеющих стиль Autolnit, запускаются сразу после открытия М-книги. Полезно включить в первую такую ячейку команду clear для очистки рабочей среды. Для установки стиля Autolnit служит пункт Define Autoinit Cell меню Notebook.Содержимое ячейки или группы можно выполнить циклически, для чего следует выделить нужные ячейки или сделать текущей группу и выбрать в меню Notebook пункт Evaluate Loop, или нажать <Alt>+<L>. Появившееся диалоговое окно Evaluate Loop позволяет установить число повторов в поле Stop After и выбрать скорость кнопками Slower и Faster.Управление М-книгойРазработчик М-книги имеет возможность изменять вид ячеек вывода как с текстовой, так и графической информацией. Меню Notebook содержит пункт Notebook Options, выбор которого приводит к появлению одноименного диалогового окна, изображенного на рис. 21.4. Панель Numeric Formatсодержит раскрывающийся список для выбора формата и переключатели Loose и Compact для добавления промежуточных пустых строк при отобра-жении числовых значений в ячейках вывода.Панель Figure Options предназначена для управления видом графических результатов, помещаемых в ячейки вывода. Установленный флаг Embed Figures in M-book обеспечивает размещение графиков в ячейках вывода,

Page 11: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

а сброшенный — приводит к визуализации результатов в отдельных графических окнах. Размер и единицы измерения графиков, помещаемых в ячейки ввода, определяются в строках Width и Height и раскрывающемся списке Units.Ячейки вывода с окончательными результатами преобразовываются в текст выбором пункта Undefine Cells меню Notebook. Пользователь может переопределить стили шаблона m-book.dot так же, как и любого другого стиля,выбрав в меню Формат пункт Стили и форматирование и произведя нужные установки в появившемся диалоговом окне.I Notebook OptionsNumeric FormatLooseCompactFigure OptionsI* Embed Figures in M-bookF7 Use 16-Color FiguresUnits (inchesWidth fT"Height |з.5P" Stop evaluating on errorOK | CancelРис. 21.4 Диалоговое окно Notebook OptionsКвадратные скобки, ограничивающие ячейки и группы ячеек, пропадают при выборе пункта Hide Cell Markers меню Notebook. Пункт Show Cell Markers служит для отображения скобок в документе. При печати М-книгискобки не выводятся.Совместная работа в MATLAB и MS Excel

Page 12: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Интегрирование MATLAB и MS Excel расширяет возможности электронных таблиц благодаря доступу к многочисленным функциям MATLAB для обработки данных, различных вычислений и визуализации результата. Надстройка excllink.xla реализует совместную работу в MATLAB и MS Excel.Для связи с MS Excel в MATLAB определен ряд специальных функций. Примечание В состав MATLAB может входить также MATLAB Builder for MS Excel, который позволяет создавать СОМ-объекты для использования их в MS Excel, однако в следующих разделах мы ограничимся только обзором MS Excel Link.Конфигурирование MS ExcelПеред тем как настраивать MS Excel на совместную работу с MATLAB,следует убедиться, что MS Excel Link входит в установленную версію MATLAB. В подкаталоге exlink основного каталога MATLAB или подкаталога toolbox должен находиться файл с надстройкой excllink.xla. Запустите MS Excel и в меню Сервис выберите пункт Надстройки. Открывается диалоговое окно (рис. 21.5), содержащее информацию о доступных в данный момент надстройках.(НадстройкиДоступные надстройки:LJ Мастер подстановокП Мастер суммированияГ* Пакет анализа| Пересчет в евроП Поиск решенияО Помощник по Интернету

Page 13: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

ОКОтменаОбзор...Автоматизация.dAnalysis ToolPak-VBAФункции VBA для работы пакета анализаРис. 21.5. Диалоговое окно MS Excel НадстройкиИспользуя кнопку Обзор укажите путь к файлу excllink.xla. В списке надстроек диалогового окна появилась строка MS Excel Link 2.2 for use with MATLAB с установленным флагом. Нажмите ОК, требуемая настройка добавлена в MS Excel. Обратите внимание, что в MS Excel присутствует панель инструментов MS Excel Link, содержащая кнопки: startmatlab,putmatrix, getmatrix, evalstring. Данные кнопки реализуют основные действия, требуемые для осуществления взаимосвязи между MS Excel и MATLAB —обмен матричными данными и выполнение команд MATLAB из среды MS Excel.При повторных запусках MS Excel надстройка excllink.xla подключается автоматически. Избежать подключения надстройки можно сбросом соответствующего флага в диалоговом окне Надстройки.Обмен _____k______данными между MATLAB и MS ExcelЗапустите MS Excel, проверьте, что проделаны все необходимые настройки так, как описано в предыдущем разделе. Введите в ячейки с А1 по СЗ мат-

Page 14: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

рицу (рис. 21.6), для отделения десятичных знаков используйте запятую в соответствии с требованиями MS Excel.... ':•::•123А5,52,30.1В1,66,10,4С-0.80.23.9Рис. 21.6. Ввод матрицы в ячейкиВыделите на листе данные ячейки и нажмите кнопку putmatrix, появляется диалоговое окно MS Excel со строкой ввода, предназначенной для определения имени переменной рабочей среды MATLAB, в которую следует экспортировать данные из выделенных ячеек MS Excel. Введите, к примеру, М и закройте окно при помощи кнопки ОК. Перейдите к командному окну MATLAB и убедитесь, что в рабочей среде создалась переменная м, содержащая массив три на три:≫мм

Page 15: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

=5.2.0.5000300010001.б.0.600010004000-0.0.3.800020009000Проделайте некоторые операции в MATLAB с матрицей М, например, обратите ее:≫ IM = inv(M) ; ПримечаниеВызов inv для обращения матрицы, как и любой другой команды MATLAB, можно осуществить прямо из MS Excel. Нажатие на кнопку evalstring, расположенную на панели MS Excel Link, приводит к появлению диалогового окна, в строке ввода которого следует набрать команду MATLAB IM = inv(M). Результат аналогичен полученному при выполнении команды в среде MATLAB.

Page 16: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Вернитесь в MS Excel, сделайте текущей ячейку А5 и нажмите кнопку getmatrix. Появляется диалоговое окно со строкой ввода, в которой требуется ввести имя переменной, импортируемой в MS Excel. В данном случае такой переменной является ш. Нажмите ОК, в ячейки с А5 по С7 заносятся элементы обратной матрицы. MATLAB производит вычисления с двойной точностью. Если требуется отобразить в MS Excel все значащие цифры, то выделите нужные ячейки и перейдите в меню Формат к пункту Ячейки. В открывшемся диалоговом окне Формат ячеек выберите Числовой в списке Формат ячеек и установите 15 в строке ввода Число десятичных знаков.Итак, для экспорта матрицы в MATLAB следует выделить подходящие ячейки листа MS Excel, а для импорта достаточно указать одну ячейку, которая будет являться верхним левым элементом импортируемого массива.Остальные элементы запишутся в ячейки листа согласно размерам массива,переписывая содержащиеся в них данные, поэтому следует соблюдать осторожность при импорте массивов.Вышеописанный подход является самым простым способом обмена информацией между приложениями — исходные данные содержатся в MS Excel,затем экспортируются в MATLAB, обрабатываются там некоторым образом, и результат импортируется в MS Excel. Пользователь переносит данные при помощи кнопок панели инструментов MS Excel Link. Информация может быть представлена в виде

Page 17: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

матрицы, т. е. прямоугольной или квадратной области рабочего листа. Ячейки, расположенные в строку или столбец, экспортируются, соответственно, в вектор-строки и вектор-столбцы MATLAB. Аналогично происходит и импорт вектор-строк и вектор-столбцов в MS Excel.Наряду с числовыми массивами, объектами, подлежащими обмену между MATLAB и MS Excel, могут быть текстовые данные. Введите в ячейки некоторый текст (рис. 21.7).Выделите ячейки с А1 по С 4 и экспортируйте данные в переменную mounth рабочей среды MATLAB при помощи кнопки putmatrix. Выясните тип переменной mounth, используя команду whos:≫ whos mounthName Size Bytes Classmounth 4x3 1252 cell arrayGrand total is 86 elements using 1252 bytesA1 January2 April3 July4 October: ВFebruaryMayAugustNovemberсMarchJune

Page 18: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

SeptemberDecemberРис. 21.7. Ввод в ячейки текстовой информацииОказывается, текстовая информация из ячеек MS Excel записывается в массив ячеек (cell array) MATLAB. Экспорт в MATLAB текста только одной ячейки рабочего листа MS Excel приводит к помещению ее содержимого в символьный массив типа char array (работа с символьными массивами и массивами ячеек подробно описана в главе 8).Импорт массива ячеек в MS Excel приводит к заполнению прямоугольной области на рабочем листе, размеры которой совпадают с размерами импортируемого массива. Символьный массив импортируется в одну ячейку листа MS Excel.Обмен данными между приложениями может быть осуществлен не только при помощи кнопок панели инструментов MS Excel Link, но и с использованием функций, определенных в надстройке MS Excel Link.Обращение к основным функціям MS Excel LinkВсего в MS Excel Link определено тринадцать функций, распадающихся на две категории: функции для обмена данными между MATLAB и MS Excel и функции, предназначенные для установления связи между приложениями.Данные функции могут вызываться как из ячеек рабочего листа книги MS Excel, так и из приложений на Visual Basic. При обращении к функциям MS Excel Link из ячеек рабочего листа используется функциональная форма, т. е. аргументы заключаются в круглые скобки. Вызов функций из приложений на Visual Basic требует

Page 19: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

командной формы записи, в которой аргументы задаются через пробел после имени функции.Для начала работы необходимы три основные функции, которые фактически дублируются кнопками панели инструментов MS Excel Link.Функция MLPutMatrix служит для помещения данных из ячеек листа MS Excel в массив рабочей среды MATLAB. Первым входным аргументом MLPutMatrix является имя переменной, заключенное в кавычки, а вторым —пределы области ячеек. Обратную операцию производит функція MLGetMatrix, в первом аргументе которой указывается имя переменной рабочей среды MATLAB с данными, а во втором — пределы области ячеек рабочего листа.Обращение из MS Excel к командам MATLAB производится при помощи функции MLEvaistring. Команды, подлежащие выполнению, задаются в единственном входном аргументе MLEvaistring, который заключается в кавычки. Возможно указание строки с несколькими командами, разделенными точкой с запятой, но все равно в кавычки берется вся строка, а не отдельные КОМаНДЫ. ВХОДНОЙ аргумент у MLEvaistring ТОЛЬКО ОДИН.Наберите в ячейках квадратную матрицу (рис. 21.6), затем поместите в ячейку Е2 вызов функции =MLPutMatrix ("м"; А1:СЗ). Обращение к функции из ячейки рабочего листа начинается со знака "равно". Нажатие на <Enter> для завершения ввода в ячейку приводит к выполнению ее содержимого. В данном случае происходит считывание содержимого области ячеек с А1 по СЗ в числовой массив м. Занесите в

Page 20: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

ячейку Е4 вызов =MLEvaistring ( " IM = inv (М)").После выхода из Е4 MATLAB обращает матрицу м и записывает результат В IM. Вызовите ИЗ ЯЧеЙКИ Е6 функцию =MLGetMatrix ("IM"; "A5:C7"), ИМпортирующую обратную матрицу в ячейки MS Excel с А5 по С7. Вид рабочего листа приведен на рис. 21.8, в ячейках с формулами отображаются нули, содержимое каждой из трех ячеек указано на рисунке отдельно.Е2 ! =MLPutMatrix("Ml;A1:C3)А В C D E I F1 ' 5J" "'"'" f £" ' ' ^ 8 ^ ' * __=MLPutMat r i x ( "M" ; A l : C3 )2 j 2,3 6,1 ад3 0,1 0,4| 3,94 . оч——-^— =MLEvalString("IM=inv(M) ")5 0,204684 -0,056631 \ 0,0448916 -0,077264: 0,185865 -0,025380l' 0,002676-0,017611 0,257862 | ^MLGetMatrix ( " IM" ; "A5 : C7 " )Рис. 21.8. Содержимое рабочего листаПользователи, имеющие опыт программирования на Visual Basic, могут использовать функции MS Excel Link в своих программах. Листинг 21.5 содержит текст модуля с процедурой Myinv, выполняющей те же действия, чтои последовательный вызов из ячеек рабочего листа трех функций MLPutMatrix, MLEvaistring И MLGetMatrix. При написании данной ПрОЦедуры в среде Microsoft Visual Basic следует установить ссылку на excllink.xlaпри помощи пункта Ссылки меню Сервис.j Листинг 21.5. Процедура MyinvFunction Myinv(Mrange, IMrange)

Page 21: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

MLPutMatrix "M", MrangeMLEvalString "IM = inv(M) "MLGetMatrix "IM", IMrangeEnd FunctionВызов процедуры Myinv производится из свободной ячейки рабочего листа И ВЫГЛЯДИТ СЛедуЮЩИМ Образом: =MyInv(Al:C3; "A5:C7"). ФуНКЦИИ MSExcel Link могут оперировать с различным заданием области ячеек, в том числе и по имени. Подробные сведения содержатся в справочной системеMS Excel в разд. Справочник по Visual Basic. Несколько примеров, касающихся интегрирования MATLAB и MS Excel, включены в книгу ExliSamp.xls,которая находится в том же подкаталоге MATLAB, что и настройка excllink.xla.Функции MS Excel LinkКак мы упоминали выше, имеется две группы функций MS Excel Link:функции для обмена данными между MATLAB и MS Excel и функции для связи между приложениями.В MS Excel Link определено девять функций, обеспечивающих экспорт и импорт данных при совместной работе в MATLAB и MS Excel. Три из них:MLPutMatrix, MLEvalString И MLGetMatrix ОПИСаны В предыдущем разделе. Функция matiabfсп вычисляет указанную в ней функцию MATLAB от массива данных, заданного диапазоном ячеек. Результат возвращается в ячейку, содержащую вызов matiabf сп. Если результат — массив, то следует прибегнуть к функции matiabsub, которая позволяет задать диапазон ячеек для

Page 22: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

вывода. Эти функции используются только в ячейках рабочего листа.Функция MLAppendMatrix так же, как и MLPutMatrix, предназначена для экспорта данных в MATLAB. Основное отличие состоит в том, что в случае экспорта данных из ячеек в массив, существующий в рабочей среде, функция MLAppendMatrix пытается добавить данные к содержимому массива.Способ занесения данных требует совпадения числа строк или столбцов в массиве и области ячеек. В случае неоднозначности, т. е. когда содержимое ячеек может быть добавлено как строки, так и столбцы, создаются нове строки. Если же размеры области ячеек не соответствуют массиву, то MLAppendMatrix возвращает ошибку. Во внимание принимается также тип данных.Удаление массива рабочей среды MATLAB производится при помощи функции MLDeieteMatrix, входным аргументом которой является имя массива, заключенное в кавычки. В случае отсутствия массива в рабочей бреде выдается сообщение.При программировании на Visual Basic (VBA) оказывается полезной функция MLPutvar, которая предназначена для экспорта значения переменной изпроцедуры на VBA в рабочую среду MATLAB. Первым аргументом MLPutvar является имя переменной MATLAB, а вторым — имя переменной в процедуре на VBA. Импорт данных из рабочей среды в переменную процедуры осуществляет функция MLGetvar. Порядок аргументов MLGetvar такой же, как и у MLPutvar. Очевидно, что две эти функции используются только при программировании на VBA.

Page 23: s.siteapi.org file · Web viewГлава 21. Связь MATLAB и MS Office. Среда MATLAB допускает интегрирование с MS Word и MS Excel, которое

Четыре функции: matlabinit, MLAutoStart, MLClose, MLOpen, обеспечивающие согласованную работу MATLAB и MS Excel, образуют вторую группу функций MS Excel Link. Функция matlabinit служит для инициализации MS Excel Link и запуска MATLAB. Для запуска только MATLAB следует обратиться к мъореп. Функция MLAutostart позволяет задать или отменитьавтоматический запуск MATLAB при открытии MS Excel. Для закрытия MATLAB вызывается MLClose.Глава 22__