Предупреждение
Возможность сборки и упаковки кода MATLAB ® из мастера функций для надстроек Excel ® будет удалена в следующей версии. Чтобы создать надстройку Excel, используйте приложение компилятор библиотеки.
Не рекомендуется начинать с R2020a
Если функция MATLAB готова к развертыванию и компонент надстройки и COM уже встроен с помощью средства развертывания, выполните этот рабочий процесс, чтобы включить компонент COM в Microsoft Excel с помощью мастера функций. Для эффективного выполнения рабочего процесса в этом разделе необходимо запустить приложение Create Excel Add-In из MATLAB.
Мастер функций также позволяет выполнять итерационное тестирование, разработку и отладку функции MATLAB. Использование этого сквозного потока операций предполагает, что вы все еще находитесь в процессе разработки функции MATLAB для развертывания. Полные инструкции для этого рабочего процесса см. в разделе Сквозное развертывание функции MATLAB.
Дополнительные сведения см. в разделе Выбор потока операций развертывания функций.
Основные задачи для конечного пользователя
| Задача | Ссылка |
|---|---|
| 1. Установите мастер функций. | Установка мастера функций |
| 2. Запустите мастер функций. | Запуск мастера функций |
| 3. Выберите параметр для включения встроенного COM-компонента в Microsoft Excel. | Выбор потока операций для функций MATLAB, готовых к развертыванию |
| 4. Определите новую функцию MATLAB, которую требуется прообразировать, добавив ее в мастер функций и установив диапазоны ввода и вывода. | Определение функций, готовых к выполнению |
| 5. Протестируйте функцию MATLAB, выполнив ее с помощью мастера функций. | Выполнение функции |
| 6. Создание макроса. | Создание макросов |
| 7. Выполните макрос, созданный с помощью мастера функций. | Выполнение макроса |
| 8. При необходимости проверьте или измените код Microsoft ® Visual Basic ®, созданный с помощью COM-компонента. При необходимости прикрепите созданный макрос к кнопке графического интерфейса пользователя. | Доступ к коду Microsoft Visual Basic (дополнительная расширенная задача) |
Мастер функций позволяет передавать значения листа Microsoft Excel (Excel 2000 или более поздней версии) в скомпилированную модель MATLAB, а затем возвращать выходные данные модели в ячейку или диапазон ячеек на листе.
Мастер функций предоставляет интуитивно понятный интерфейс для листов Excel. Вам не нужны предыдущие знания о программировании Microsoft Visual Basic для приложений (VBA).
Мастер функций отражает любые изменения, внесенные в рабочие листы, такие как выбор диапазона. Мастер функций также используется для управления размещением и выводом данных из функций MATLAB в рабочие листы.
Примечание
Мастер функций в настоящее время не поддерживает MATLAB sparse, и complex типы данных.
Перед использованием мастера функций необходимо установить его как надстройку, доступную из Microsoft Excel.
После установки мастера функций появляется запись MATLAB Functions в виде доступной кнопки надстройки Microsoft Excel.
Перейдите на вкладку Файл (File).
На левой панели навигации выберите Параметры.
В диалоговом окне «Параметры Excel» на левой панели навигации выберите Надстройки.
В раскрывающемся списке Управление выберите Надстройки Excel и нажмите кнопку Перейти.
В диалоговом окне «Надстройки» нажмите кнопку «Обзор».
Перейти к и выберите matlabroot/toolbox/matlabxl/matlabxl/archFunctionWizard2007.xlam. Нажмите кнопку ОК.
В диалоговом окне «Надстройки Excel» убедитесь, что выбрана запись MATLAB Compiler Function Wizard. Нажмите кнопку ОК.
Вкладка «Главная» ленты Microsoft Excel теперь должна содержать плитку мастера функций. См. вкладку «Главная» ленты Microsoft Office с установленным мастером функций.
Запустите Microsoft Excel, если он еще не запущен.
Нажмите кнопку Office
() и выберите Параметры Excel.
На левой панели диалогового окна «Параметры Excel» нажмите кнопку Надстройки.
На правой панели диалогового окна Параметры Excel выберите Надстройки Excel в раскрывающемся списке Управление.
Нажмите кнопку Go (Перейти).
Нажмите кнопку Обзор. Перейти к и выбрать matlabroot\toolbox\matlabxl\matlabxl\archFunctionWizard2007.xlam. Нажмите кнопку ОК.
В диалоговом окне «Надстройки Excel» убедитесь, что выбрана запись MATLAB Compiler Function Wizard. Нажмите кнопку ОК.
В главном меню Excel выберите Сервис > Надстройки.
Если мастер функций был установлен ранее, в списке появится мастер функций компилятора MATLAB. Выберите элемент и нажмите кнопку ОК.
Если мастер функций ранее не был установлен, нажмите кнопку Обзор и перейдите к matlabroot\toolbox\matlabxl\matlabxl папка. Выбрать FunctionWizard.xla. Нажмите кнопку ОК, чтобы продолжить.
Запустите мастер функций одним из следующих способов. После инициализации мастера откроется диалоговое окно «Начальная страница мастера функций».
В Microsoft Excel на ленте Microsoft Office на вкладке Главная выберите Мастер функций.
Домашняя вкладка ленты Microsoft Office с установленным мастером функций

Можно также получить доступ к мастеру функций на вкладке Файл.
В главном меню Excel выберите «Файл» > «Параметры» > «Надстройки».
Выберите Function Wizard (Мастер функций).
Диалоговое окно «Начальная страница мастера функций»

После установки и запуска мастера функций выполните следующие действия:
На начальной странице мастера функций выберите параметр У меня есть компонент надстройки, который был встроен в MATLAB с помощью средства развертывания, которое требуется интегрировать в рабочую книгу.
Нажмите кнопку OK. Откроется панель управления мастера функций с включенной кнопкой «Добавить функцию».
Панель управления мастера функций для работы с функциями MATLAB, готовыми к развертыванию

Совет
Чтобы вернуться на начальную страницу мастера функций, нажмите кнопку Начать заново.
Определите функцию, которую требуется выполнить, в мастере функций. Щелкните Добавить функцию (Add Function) в области Настройка функций (Set Up Functions) панели управления мастера функций. Откроется диалоговое окно Компоненты MATLAB (MATLAB Components).
В области Доступные компоненты (Available Components) диалогового окна Компоненты MATLAB (MATLAB Components) выберите имя компонента (xlmagic) из раскрывающегося списка.
Выберите функцию, которую требуется выполнить (mymagic) в поле «Функции для класса xlmagic».
Щелкните Добавить функцию (Add Function). Откроется диалоговое окно Свойства функции (Function Properties).
Совет
В области «Синтаксис функции» и «Справка» диалогового окна «Свойства функции» отображается первая строка текста справки (иногда называемая H1 строкой) в функции MATLAB. Отображение этих комментариев в диалоговом окне Свойства функции (Function Properties) может быть полезно при развертывании новых или незнакомых функций MATLAB для конечных пользователей.
Определите свойства входных аргументов следующим образом.
На вкладке Ввод (Input) щелкните Задать входные данные (Set Input Data). Входные данные для n откроется диалоговое окно.

Задайте диапазон или значение, выбрав соответствующую опцию и введя значение. Если аргумент ссылается на структурный массив (struct), выберите опцию Это аргумент структурного массива MATLAB. Сведения о назначении диапазонов и значений полям массива структуры см. в разделе Работа со структурными массивами.
Примечание
Выберите параметр «Автоматический пересчет при изменении», чтобы заставить Microsoft Excel автоматически пересчитывать данные электронной таблицы при каждом изменении.
Нажмите кнопку ОК.
Совет
Сведения о том, как Compiler™ MATLAB для надстроек Excel обрабатывает пустые ячейки (или ячейки, не содержащие данных), см. в разделе Управление значениями пустых ячеек.
Определите свойства выходного аргумента следующим образом.
На вкладке Вывод (Output) щелкните Задать выходные данные (Set Output Data). Выходные данные для y появляется диалоговое окно, где y - имя выходной переменной, для которой определяются свойства.

Совет
Можно также указать MATLAB Compiler для автоматического изменения размера, транспонирования или вывода данных в формате даты (Output as date). Для этого выберите соответствующий параметр в свойствах аргумента для y диалоговое окно.
Укажите диапазон. Также можно выбрать диапазон ячеек на листе Excel; диапазон будет введен в поле Диапазон.
Выберите «Автоматически изменять размер», если он еще не выбран.
Щелкните Готово (Done) в окне Выходные данные (Output Data) для y диалоговое окно.
Нажмите кнопку Готово (Done) в диалоговом окне Свойства функции (Function Properties).

mymagic появится в списке «Активные функции» панели управления мастера функций.
Можно указать, как компилятор MATLAB обрабатывает пустые ячейки, позволяя назначать неопределенные или непредставленные ячейки (NaN, например) значения данных для них.
Чтобы указать способ обработки пустых ячеек, выполните следующие действия.
Щелкните Опции (Options) в окне Входные данные (Input Data) для N диалоговое окно.
Откроется диалоговое окно Опции преобразования ввода (Input Conversion Options).

Щелкните раскрывающийся список Рассматривать отсутствующие данные как.
Укажите значение Zero или NaN (не число) в зависимости от способа обработки пустых ячеек.
Чтобы назначить диапазоны полям в массиве структуры, выполните следующие действия.
Если это еще не сделано, выберите Это аргумент массива структуры MATLAB в поле Входные данные для n и нажмите кнопку «ОК».

Аргумент входных данных для массива структуры n откроется диалоговое окно.

Мастер функций поддерживает векторные и двумерные массивы структур, организованные в организации Element by Element или Plane, как для ввода, так и для вывода.
В аргументе Input Data for Structure Array n выполните следующие действия:
В области «Организация структурного массива» выберите «Организация по элементам» или «Организация по плоскостям».
Нажмите кнопку Добавить поле, чтобы добавить поля для каждого из аргументов массива структуры. Откроется диалоговое окно Поле для аргумента структурного массива (Field for Structure Array Argument).

В диалоговом окне «Поле для аргумента» выполните следующие действия.
В поле Имя определите имя поля. Указанное имя должно совпадать с именем поля структурного массива в функции MATLAB.
Укажите диапазон для поля.

Щелкните Готово (Done).
Как поддерживаются массивы структуры. Компилятор MATLAB поддерживает один и двухмерный массивы структуры MATLAB.
Продукт преобразует данные, передаваемые в массивы структуры в поэлементной организации или организации плоскости. Дополнительные сведения обо всех типах данных MATLAB, включая структуры, см. в разделе Основы программирования MATLAB.
Развертывание массивов структуры в качестве входов и выходов. Если вы программист MATLAB и хотите развернуть функцию MATLAB со структурными массивами в качестве входных или выходных аргументов, создайте макросы Microsoft Excel с помощью мастера функций и передайте их (с надстройкой Excel и компонентом COM) конечным пользователям. Если это невозможно, сообщите конечным пользователям:
Какие аргументы являются массивами структуры
Имена полей массивов структуры
Использование макросов со структурными массивами. Функция генерации макросов в компиляторе MATLAB для надстроек Excel работает с массивами структур в качестве входных или выходных аргументов. См. раздел Создание макросов, если имеется готовая к развертыванию функция MATLAB. См. раздел Надстройка Microsoft Excel и создание макросов с помощью мастера функций, если для создания функции MATLAB с нуля используется мастер функций. Дополнительные сведения об обоих рабочих процессах см. в разделе Выбор рабочего процесса развертывания функций.
В области Execute Functions панели управления мастера функций нажмите Execute для запуска mymagic. Клетки A1:E5 на листе Excel автоматически заполняются выходные данные mymagic (магический квадрат размерности 5).

Продолжая пример, создайте макрос Microsoft Excel с помощью панели управления мастера функций:
В области «Создание макросов» панели управления введите mymagic в поле Имя макроса.
Выберите расположение для сохранения макроса в раскрывающемся списке «Сохранить макрос».
Введите краткое описание функциональных возможностей макроса в поле Описание.
Щелкните Создать макрос (Create Macro).
Макрос создается в текущей книге Excel.
Запустите макрос, созданный при создании макроса, выполнив одно из следующих действий после первого удаления ячеек A1:E5 (которые содержат выходные данные функции Magic Square, запущенной при выполнении функции).
Совет
Перед запуском макросов в Microsoft Excel может потребоваться включить соответствующие параметры безопасности. Сведения о разрешениях макросов и связанных сообщениях об ошибках см. в приложении «Ошибки и решения».
В Microsoft Excel щелкните Просмотр > Макросы > Просмотр макросов.
Выбрать mymagic из раскрывающегося списка Имя макроса.
Щелкните Выполнить (Run). Клетки A1:E5 на листе Excel автоматически заполняются выходные данные mymagic.
В Microsoft Excel выберите Инструменты > Макрос > Макросы.
Выбрать mymagic из раскрывающегося списка Имя макроса.
Щелкните Выполнить (Run). Клетки A1:E5 на листе Excel автоматически заполняются выходные данные mymagic.
При необходимости можно получить доступ к коду Visual Basic или изменить его в зависимости от опыта программирования или наличия разработчика Excel. Если да, выполните следующие действия.
В главном окне Excel откройте редактор Microsoft Visual Basic, выполнив одно из следующих действий. выберите «Сервис» > «Макрос» > «Редактор Visual Basic».
Щелкните Разработчик > Visual Basic.
При открытии редактора Visual Basic в окне Проект - VBAProject дважды щелкните, чтобы развернуть VBAProject (mymagic.xls).
Разверните окно Modules и дважды щелкните значок Matlab Macros модуль.
Откроется окно Visual Basic Code с кодом для этого проекта.
Щелкните Инструменты > Макрос > Редактор Visual Basic.
При открытии редактора Visual Basic в окне Проект - VBAProject дважды щелкните, чтобы развернуть VBAProject (mymagic.xls).
Разверните окно Modules и дважды щелкните значок Matlab Macros модуль.
Откроется окно VB Code с кодом для этого проекта.
Чтобы прикрепить макрос к кнопке графического интерфейса пользователя, выполните следующие действия:
Щелкните Разработчик > Вставить.
В меню «Элементы управления» выберите значок «Кнопка» (элемент управления «Форма»).
Совет
Наведите курсор мыши на меню «Элементы управления формы» для просмотра различных меток элементов управления.
В диалоговом окне «Назначение макросов» выберите макрос, которому требуется назначить кнопку графического интерфейса пользователя, и нажмите кнопку «ОК».
Присоединение макроса к кнопке

| Если хочешь... | Видишь... |
|---|---|
| Запись развертываемого кода MATLAB |
| См. дополнительные примеры создания надстроек и COM-компонентов | Создание макросов из функций MATLAB |
| Узнайте, как настроить и интегрировать COM-компонент, созданный путем изменения кода Microsoft Visual Basic | Интеграция компонентов с помощью приложения Visual Basic |