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

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

Опция для сборки и упаковки MATLAB® код из мастера функций для Excel® надстройки будут удалены в следующем релизе. Чтобы создать надстройку Excel, используйте приложение Library Compiler.

Не рекомендуемый запуск в R2020a

Если ваша функция MATLAB готова к развертыванию и вы уже создали надстройку и COM- компонента с Deployment Tool, следуйте этому рабочему процессу, чтобы включить встроенные COM- компонента в Microsoft Excel с помощью мастера функций. Чтобы эффективно следовать рабочему процессу в этом разделе, необходимо запустить команду Создать надстройку Excel из MATLAB.

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

Дополнительные сведения см. в разделе Выбор рабочего процесса развертывания функций.

Ключевые задачи для конечного пользователя

ЗадачаСсылка
1. Установите мастер функций.Установка мастера функций
2. Запустите мастер функций.Запуск мастера функций
3. Выберите опцию для включения встроенных COM- компонента в Microsoft Excel.Выбор рабочего процесса для функций MATLAB, готовых к развертыванию
4. Определите новую функцию MATLAB, которую вы хотите прототипировать, добавив ее к мастеру функций и установив вход и выходные области значений.Определение функций, готовых к выполнению
5. Протестируйте функцию MATLAB с помощью Мастера функций.Выполнение функции
6. Создайте макрос.Создание макросов
7. Выполните макрос, созданный с помощью Мастера функций.Выполнение макроса
8. Осмотрите или измените Microsoft® Визуальный базовый® код, сгенерированный с помощью COM- компонента. При необходимости присоедините макрос, созданный вами, к кнопке GUI.Microsoft Visual Basic Code Access (необязательная расширенная задача)

Что может сделать мастер функций для меня?

Мастер функций позволяет передавать значения листа Microsoft Excel (Excel 2000 или более поздней версии) в скомпилированную модель MATLAB, а затем возвращать выход модели в камеру или область значений камер в листе.

Мастер функций обеспечивает интуитивно понятный интерфейс для таблиц Excel. Вам не нужны предыдущие знания о программировании Microsoft Visual Basic for Applications (VBA).

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

Примечание

Мастер функций не поддерживает MATLAB sparse, и complex типы данных.

Установка мастера функций

Прежде чем использовать мастер функций, необходимо сначала установить его как надстройку, доступную из Microsoft Excel.

После установки Мастера функций MATLAB Functions ввода появляется как доступная кнопка надстройки Microsoft Excel.

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

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

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

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

  4. В раскрывающемся списке Управление выберите Excel Add-Ins и нажмите Go.

  5. В диалоговом окне Add-Ins нажмите Browse.

  6. Поиск matlabroot/ toolbox/matlabxl/matlabxl/ arch, и выберите FunctionWizard2007.xlam. Нажмите OK.

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

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

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

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

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

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

  4. На правой панели диалогового окна Опции Excel (Excel Options) выберите Excel Add-ins из раскрывающегося списка Manage.

  5. Нажмите Go.

  6. Нажмите Browse. Переход к matlabroot\ toolbox\matlabxl\matlabxl\ arch и выберите FunctionWizard2007.xlam. Нажмите OK.

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

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

  1. Выберите Tools > Add-Ins из главного меню Excel.

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

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

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

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

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

В Microsoft Excel, на ленте Microsoft Office, на вкладке Home, выберите Function Wizard.

Вкладка «Вкладка Home» ленты Microsoft Office с установленным мастером функций

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

  1. Выберите File > Options > Add-Ins из главного меню Excel.

  2. Выберите Function Wizard.

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

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

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

  1. На начальной странице мастера функций выберите I have an Add-in component that was built in MATLAB with the Deployment Tool that I want to integrate into a workbook опции.

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

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

Совет

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

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

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

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

  3. Выберите функцию, которую вы хотите выполнить (mymagic) из куба, маркированного Functions for Class xlmagic.

  4. Нажмите Add Function. Откроется диалоговое окно Свойства функции (Function Properties).

    Совет

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

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

    1. На вкладке Input нажмите Set Input Data. Входные данные для n откроется диалоговое окно.

    2. Задайте Range или Value, выбрав соответствующую опцию и введя значение. Если аргумент ссылается на structure array (struct), выберите This is a MATLAB structure array argument опции. Информацию о присвоении областей значений и значений полям в массиве структур см. в разделе Работа со массивами структур.

      Примечание

      Выберите опцию Auto Recalculate on Change, чтобы заставить Microsoft Excel автоматически пересчитывать данные электронных таблиц при каждом изменении.

    3. Нажмите OK.

    Совет

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

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

    1. На вкладке Output нажмите Set Output Data. Данные Выходы для y появляется диалоговое окно, где y - имя выходной переменной, свойства которой вы определяете.

      Совет

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

    2. Задайте Range. Кроме того, выберите область значений камер на листе Excel; область значений будет вводима для вас в поле Range.

    3. Выберите Auto Resize, если он еще не выбран.

    4. Щелкните Done в выходных данных для y диалоговое окно.

    5. Нажмите Done в диалоговом окне Свойства.

mymagic теперь отображается в списке Active Functions панели управления мастера функций.

Управление значениями пустых камер

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

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

  1. Щелкните Options в окне "Входные данные для N диалоговое окно.

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

  2. Щелкните раскрывающийся список Treat Missing Data As.

  3. Задайте Zero или NaN (Not a Number), в зависимости от того, как вы хотите обрабатывать пустые камеры.

Работа со массивами структур

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

  1. Если вы еще не сделали этого, выберите This is a MATLAB structure array argument в входных данных для n и нажмите кнопку OK.

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

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

    В аргументе входных данных для массива структур n выполните следующие действия:

    1. В области Организация массива структур выберите Element by Element Organization или Plane Organization.

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

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

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

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

    3. Нажмите Done.

Как поддерживаются массивы структур.  MATLAB Compiler поддерживает один и двумерный массивы структур MATLAB.

Продукт преобразует данные, переданные в массивы структур, в element-by-element organization или plane organization. Для получения дополнительной информации обо всех типах данных MATLAB, включая структуры, см. Основные принципы программирования MATLAB.

Развертывание массивов структур в качестве входов и выходов.  Если вы являетесь программистом MATLAB и хотите развернуть функцию MATLAB с массивами структур в качестве входных или выходных аргументов, создайте макросы Microsoft Excel с помощью Мастера функций и передайте их (с помощью надстройки Excel и компонента COM) конечным пользователям. Если вы не можете сделать это, сообщите конечным пользователям:

  • Какие аргументы являются массивами структур

  • Имена полей массивов структур

Использование макросов с массивами структур.  Функция генерации макросов надстроек MATLAB Compiler for Excel работает с массивами структур в качестве входных или выходных аргументов. Смотрите Создание макроса, если у вас есть функция MATLAB, которую вы готовы развернуть. См. раздел «Создание надстроек и макросов Microsoft Excel с помощью мастера функций», если для создания функции MATLAB с нуля используется мастер создания функций. Дополнительные сведения об обоих рабочих процессах см. в разделе Выбор рабочего процесса развертывания функций.

Выполнение функции

В области «Выполнение функций» панели управления мастера функций нажмите кнопку Execute, чтобы запустить mymagic. Камеры A1:E5 на листе Excel автоматически заполняются выходные данные mymagic (магический квадрат размерности 5).

Создание макросов

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

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

  2. Выберите место хранения макроса в раскрывающемся списке Store Macro.

  3. Введите краткое описание функциональности макроса в поле Description.

  4. Нажмите Create Macro.

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

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

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

Совет

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

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

  1. В Microsoft Excel щелкните View > Macros > View Macros.

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

  3. Нажмите Run. Камеры A1:E5 на листе Excel автоматически заполняются выходные данные mymagic.

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

  1. В Microsoft Excel щелкните Tools > Macro > Macros.

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

  3. Нажмите Run. Камеры A1:E5 на листе Excel автоматически заполняются выходные данные mymagic.

Microsoft Visual Basic Code Access (необязательная расширенная задача)

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

В главном окне Excel откройте редактор Microsoft Visual Basic, выполнив одно из следующих действий. выберите Tools > Macro > Visual Basic Editor.

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

  1. Нажмите Developer > Visual Basic.

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

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

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

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

  1. Нажмите Tools > Macro > Visual Basic Editor.

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

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

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

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

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

  1. Нажмите Developer > Insert.

  2. В Form Controls меню выберите значок Button (Form Control).

    Совет

    Наведите указатель мыши на меню Form Controls, чтобы увидеть различные метки управления.

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

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

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

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

  • Осмыслите, как продукты развертывания обрабатывают ваши функции MATLAB

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

  • Исследуйте рекомендации по записи развертываемого кода MATLAB

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