exponenta event banner

Выполнение функций и создание макросов

Предупреждение

Возможность сборки и упаковки кода 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.

Использование Microsoft Excel 2010 или более поздних версий Excel

  1. Перейдите на вкладку Файл (File).

  2. На левой панели навигации выберите Параметры.

  3. В диалоговом окне «Параметры Excel» на левой панели навигации выберите Надстройки.

  4. В раскрывающемся списке Управление выберите Надстройки Excel и нажмите кнопку Перейти.

  5. В диалоговом окне «Надстройки» нажмите кнопку «Обзор».

  6. Перейти к matlabroot/toolbox/matlabxl/matlabxl/archи выберите FunctionWizard2007.xlam. Нажмите кнопку ОК.

  7. В диалоговом окне «Надстройки Excel» убедитесь, что выбрана запись MATLAB Compiler Function Wizard. Нажмите кнопку ОК.

Вкладка «Главная» ленты Microsoft Excel теперь должна содержать плитку мастера функций. См. вкладку «Главная» ленты Microsoft Office с установленным мастером функций.

Использование Excel 2007

  1. Запустите Microsoft Excel, если он еще не запущен.

  2. Нажмите кнопку Office () и выберите Параметры Excel.

  3. На левой панели диалогового окна «Параметры Excel» нажмите кнопку Надстройки.

  4. На правой панели диалогового окна Параметры Excel выберите Надстройки Excel в раскрывающемся списке Управление.

  5. Нажмите кнопку Go (Перейти).

  6. Нажмите кнопку Обзор. Перейти к matlabroot\toolbox\matlabxl\matlabxl\arch и выбрать FunctionWizard2007.xlam. Нажмите кнопку ОК.

  7. В диалоговом окне «Надстройки Excel» убедитесь, что выбрана запись MATLAB Compiler Function Wizard. Нажмите кнопку ОК.

Использование Excel 2003

  1. В главном меню Excel выберите Сервис > Надстройки.

  2. Если мастер функций был установлен ранее, в списке появится мастер функций компилятора MATLAB. Выберите элемент и нажмите кнопку ОК.

    Если мастер функций ранее не был установлен, нажмите кнопку Обзор и перейдите к matlabroot\toolbox\matlabxl\matlabxl папка. Выбрать FunctionWizard.xla. Нажмите кнопку ОК, чтобы продолжить.

Запуск мастера функций

Запустите мастер функций одним из следующих способов. После инициализации мастера откроется диалоговое окно «Начальная страница мастера функций».

Использование Microsoft Excel 2007 или более новых версий Excel

В Microsoft Excel на ленте Microsoft Office на вкладке Главная выберите Мастер функций.

Домашняя вкладка ленты Microsoft Office с установленным мастером функций

Можно также получить доступ к мастеру функций на вкладке Файл.

  1. В главном меню Excel выберите «Файл» > «Параметры» > «Надстройки».

  2. Выберите Function Wizard (Мастер функций).

Диалоговое окно «Начальная страница мастера функций»

Выбор потока операций для функций MATLAB, готовых к развертыванию

После установки и запуска мастера функций выполните следующие действия:

  1. На начальной странице мастера функций выберите параметр У меня есть компонент надстройки, который был встроен в MATLAB с помощью средства развертывания, которое требуется интегрировать в рабочую книгу.

  2. Нажмите кнопку OK. Откроется панель управления мастера функций с включенной кнопкой «Добавить функцию».

    Панель управления мастера функций для работы с функциями MATLAB, готовыми к развертыванию

Совет

Чтобы вернуться на начальную страницу мастера функций, нажмите кнопку Начать заново.

Определение функций, готовых к выполнению

  1. Определите функцию, которую требуется выполнить, в мастере функций. Щелкните Добавить функцию (Add Function) в области Настройка функций (Set Up Functions) панели управления мастера функций. Откроется диалоговое окно Компоненты MATLAB (MATLAB Components).

  2. В области Доступные компоненты (Available Components) диалогового окна Компоненты MATLAB (MATLAB Components) выберите имя компонента (xlmagic) из раскрывающегося списка.

  3. Выберите функцию, которую требуется выполнить (mymagic) в поле «Функции для класса xlmagic».

  4. Щелкните Добавить функцию (Add Function). Откроется диалоговое окно Свойства функции (Function Properties).

    Совет

    В области «Синтаксис функции» и «Справка» диалогового окна «Свойства функции» отображается первая строка текста справки (иногда называемая H1 строкой) в функции MATLAB. Отображение этих комментариев в диалоговом окне Свойства функции (Function Properties) может быть полезно при развертывании новых или незнакомых функций MATLAB для конечных пользователей.

  5. Определите свойства входных аргументов следующим образом.

    1. На вкладке Ввод (Input) щелкните Задать входные данные (Set Input Data). Входные данные для n откроется диалоговое окно.

    2. Задайте диапазон или значение, выбрав соответствующую опцию и введя значение. Если аргумент ссылается на структурный массив (struct), выберите опцию Это аргумент структурного массива MATLAB. Сведения о назначении диапазонов и значений полям массива структуры см. в разделе Работа со структурными массивами.

      Примечание

      Выберите параметр «Автоматический пересчет при изменении», чтобы заставить Microsoft Excel автоматически пересчитывать данные электронной таблицы при каждом изменении.

    3. Нажмите кнопку ОК.

    Совет

    Сведения о том, как Compiler™ MATLAB для надстроек Excel обрабатывает пустые ячейки (или ячейки, не содержащие данных), см. в разделе Управление значениями пустых ячеек.

  6. Определите свойства выходного аргумента следующим образом.

    1. На вкладке Вывод (Output) щелкните Задать выходные данные (Set Output Data). Выходные данные для y появляется диалоговое окно, где y - имя выходной переменной, для которой определяются свойства.

      Совет

      Можно также указать MATLAB Compiler для автоматического изменения размера, транспонирования или вывода данных в формате даты (Output as date). Для этого выберите соответствующий параметр в свойствах аргумента для y диалоговое окно.

    2. Укажите диапазон. Также можно выбрать диапазон ячеек на листе Excel; диапазон будет введен в поле Диапазон.

    3. Выберите «Автоматически изменять размер», если он еще не выбран.

    4. Щелкните Готово (Done) в окне Выходные данные (Output Data) для y диалоговое окно.

    5. Нажмите кнопку Готово (Done) в диалоговом окне Свойства функции (Function Properties).

mymagic появится в списке «Активные функции» панели управления мастера функций.

Элемент управления значением пустой ячейки

Можно указать, как компилятор MATLAB обрабатывает пустые ячейки, позволяя назначать неопределенные или непредставленные ячейки (NaN, например) значения данных для них.

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

  1. Щелкните Опции (Options) в окне Входные данные (Input Data) для N диалоговое окно.

    Откроется диалоговое окно Опции преобразования ввода (Input Conversion Options).

  2. Щелкните раскрывающийся список Рассматривать отсутствующие данные как.

  3. Укажите значение Zero или NaN (не число) в зависимости от способа обработки пустых ячеек.

Работа с массивами Struct

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

  1. Если это еще не сделано, выберите Это аргумент массива структуры MATLAB в поле Входные данные для n и нажмите кнопку «ОК».

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

  2. Мастер функций поддерживает векторные и двумерные массивы структур, организованные в организации Element by Element или Plane, как для ввода, так и для вывода.

    В аргументе Input Data for Structure Array n выполните следующие действия:

    1. В области «Организация структурного массива» выберите «Организация по элементам» или «Организация по плоскостям».

    2. Нажмите кнопку Добавить поле, чтобы добавить поля для каждого из аргументов массива структуры. Откроется диалоговое окно Поле для аргумента структурного массива (Field for Structure Array Argument).

  3. В диалоговом окне «Поле для аргумента» выполните следующие действия.

    1. В поле Имя определите имя поля. Указанное имя должно совпадать с именем поля структурного массива в функции MATLAB.

    2. Укажите диапазон для поля.

    3. Щелкните Готово (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 с помощью панели управления мастера функций:

  1. В области «Создание макросов» панели управления введите mymagic в поле Имя макроса.

  2. Выберите расположение для сохранения макроса в раскрывающемся списке «Сохранить макрос».

  3. Введите краткое описание функциональных возможностей макроса в поле Описание.

  4. Щелкните Создать макрос (Create Macro).

    Макрос создается в текущей книге Excel.

Выполнение макроса

Запустите макрос, созданный при создании макроса, выполнив одно из следующих действий после первого удаления ячеек A1:E5 (которые содержат выходные данные функции Magic Square, запущенной при выполнении функции).

Совет

Перед запуском макросов в Microsoft Excel может потребоваться включить соответствующие параметры безопасности. Сведения о разрешениях макросов и связанных сообщениях об ошибках см. в приложении «Ошибки и решения».

Использование Excel 2007 или более новых версий Excel

  1. В Microsoft Excel щелкните Просмотр > Макросы > Просмотр макросов.

  2. Выбрать mymagic из раскрывающегося списка Имя макроса.

  3. Щелкните Выполнить (Run). Клетки A1:E5 на листе Excel автоматически заполняются выходные данные mymagic.

Использование Excel 2003

  1. В Microsoft Excel выберите Инструменты > Макрос > Макросы.

  2. Выбрать mymagic из раскрывающегося списка Имя макроса.

  3. Щелкните Выполнить (Run). Клетки A1:E5 на листе Excel автоматически заполняются выходные данные mymagic.

Доступ к коду Microsoft Visual Basic (дополнительная расширенная задача)

При необходимости можно получить доступ к коду Visual Basic или изменить его в зависимости от опыта программирования или наличия разработчика Excel. Если да, выполните следующие действия.

В главном окне Excel откройте редактор Microsoft Visual Basic, выполнив одно из следующих действий. выберите «Сервис» > «Макрос» > «Редактор Visual Basic».

Использование Excel 2007 или более новых версий Excel

  1. Щелкните Разработчик > Visual Basic.

  2. При открытии редактора Visual Basic в окне Проект - VBAProject дважды щелкните, чтобы развернуть VBAProject (mymagic.xls).

  3. Разверните окно Modules и дважды щелкните значок Matlab Macros модуль.

    Откроется окно Visual Basic Code с кодом для этого проекта.

Использование Excel 2003

  1. Щелкните Инструменты > Макрос > Редактор Visual Basic.

  2. При открытии редактора Visual Basic в окне Проект - VBAProject дважды щелкните, чтобы развернуть VBAProject (mymagic.xls).

  3. Разверните окно Modules и дважды щелкните значок Matlab Macros модуль.

    Откроется окно VB Code с кодом для этого проекта.

Сопоставление макроса кнопке GUI или элементу управления (необязательно)

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

  1. Щелкните Разработчик > Вставить.

  2. В меню «Элементы управления» выберите значок «Кнопка» (элемент управления «Форма»).

    Совет

    Наведите курсор мыши на меню «Элементы управления формы» для просмотра различных меток элементов управления.

  3. В диалоговом окне «Назначение макросов» выберите макрос, которому требуется назначить кнопку графического интерфейса пользователя, и нажмите кнопку «ОК».

Присоединение макроса к кнопке

Для получения дополнительной информации

Если хочешь...Видишь...
  • Выполнение основных задач программиста MATLAB

  • Понимание того, как продукты развертывания обрабатывают функции MATLAB

  • Понимание совместной работы продуктов развертывания

  • Ознакомьтесь с инструкциями по написанию развертываемого кода MATLAB

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