Сквозное развертывание функции MATLAB

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

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

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

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

Функциональный Мастер позволяет вам итеративно тестировать, разрабатывать, и отлаживать свою функцию MATLAB. Это делает это путем вызова MATLAB от Функциональной Панели управления Мастера.

Разработка вашей функции в интерактивной среде гарантирует, что это работает ожидаемым способом до развертывания на приложениях более широкого масштаба. Обычно, эти приложения запрограммированы Excel Developer с помощью языка предприятия как Microsoft® Visual Basic®.

Подобно примеру Магического квадрата, Прототипированию и Отладке примера разрабатывает функцию с именем mymagic, который переносит функцию MATLAB, magic, который вычисляет магический квадрат, функцию с одним многомерным матричным выходом.

Если ваша функция MATLAB готова быть развернутой, и вы уже создали свое дополнение и COM-компонент с Deployment Tool, смотрите, Выполняют Функции и Создают Макросы.

Ключевые задачи для программиста MATLAB

ЗадачаСсылка
1. Рассмотрите MATLAB Compiler для дополнительных необходимых условий Excel, если вы уже не сделали так.MATLAB Compiler для дополнительных необходимых условий Microsoft Excel
2. Подготовьтесь запускать пример путем копирования файлов в качестве примера.Копирование файла в качестве примера
3. Протестируйте функцию MATLAB, которую вы хотите развернуть как дополнение или COM-компонент.Тестирование mymagic
4. Установите функциональный мастер.Установка функционального мастера
5. Запустите функциональный мастер.Функциональный запуск мастера
6. Выберите прототипирование и отладку рабочего процесса.Выбор рабочего процесса для прототипирования и отладки функций MATLAB
7. Задайте новую функцию MATLAB, которую вы хотите моделировать путем добавления его в Функциональный Мастер и устанавливающий области значений ввода и вывода.Новое определение функции MATLAB
8. Протестируйте свою функцию MATLAB путем выполнения его с Функциональным Мастером.Функциональное выполнение из MATLAB
9. Моделируйте и Отладка функция MATLAB в случае необходимости, с помощью MATLAB и Функционального Мастера.Прототипирование функции MATLAB и отладка
10. Создайте дополнение и COM-компонент, а также макрос, с помощью Функционального Мастера, чтобы вызвать MATLAB и Deployment Tool.Дополнение Microsoft Excel и макро-создание Используя функциональный мастер
11. Выполните свою функцию от недавно созданного компонента, чтобы гарантировать, что поведение функции идентично тому, когда это было протестировано.Функциональное выполнение от развернутого компонента
12. Выполните макрос, вы создали использование Функционального Мастера.Макро-выполнение
13. Группируйте свое развертываемое дополнение и макрос с помощью Функционального Мастера, чтобы вызвать MATLAB и Deployment Tool.Дополнение Microsoft Excel и Упаковка Макроса с помощью Функционального Мастера
14. Опционально смотрите или измените код Microsoft Visual Basic, который вы сгенерировали с COM-компонентом. Опционально, присоедините макрос, который вы создали к кнопке GUI.Код Microsoft Visual Basic доступ (дополнительная усовершенствованная задача)

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

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

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

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

Примечание

Функциональный Мастер в настоящее время не поддерживает sparse MATLAB, и complex типы данных.

Копирование файла в качестве примера

Весь MATLAB Compiler примеры Microsoft Excel находится в matlabroot\toolbox\matlabxl\examples\. Следующая таблица идентифицирует примеры папкой:

Например, файлы, относящиеся...Найдите пример кода в папке...Например, документация видит...
Пример магического квадрата xlmagic Распределите дополнения и объединяйтесь в Microsoft Excel
Пример аргумента переменной длиныxlmultiСоздайте макросы из функций MATLAB с несколькими аргументами
Вызов скомпилированных функций MATLAB от Microsoft ExcelxlbasicСоздайте дополнение в MATLAB
Пример спектрального анализаxlspectralСоздайте и интегрируйте функции спектрального анализа

Тестирование mymagic

В этом примере вы тестируете файл MATLAB (mymagic.m) содержа предопределенную функцию MATLAB magic. Вы тестируете, чтобы иметь базовую линию, чтобы выдержать сравнение с результатами функции, когда это готово развернуться.

  1. В MATLAB найдите mymagic.m. Смотрите, что Файл В качестве примера Копирует для местоположений примеров. Содержимое файла следующие:

    function y = mymagic(x)
    %MYMAGIC Magic square of size x.
    %   Y = MYMAGIC(X) returns a magic square of size x.
    %   This file is used as an example for the MATLAB Compiler product.
    
    %   Copyright 2001-2012 The MathWorks, Inc.
    
    y = magic(x)
    

  2. В командной строке MATLAB введите mymagic(5). Просмотрите получившийся вывод, который появляется следующим:

    17 24  1  8 15
    23  5  7 14 16
     4  6 13 20 22
    10 12 19 21  3
    11 18 25  2  9

Установка функционального мастера

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

После того, как вы установите Функциональный Мастер, запись, MATLAB Functions появляется как доступная дополнительная кнопка Microsoft Excel.

Используя Microsoft Excel 2010 или более новый

  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 Add-Ins проверьте, что запись MATLAB Compiler Function Wizard выбрана. Нажмите OK.

  8. Гарантируйте, что вкладка Home Ленты Microsoft Excel содержит Функциональную мозаику Мастера.

Используя Excel 2007

  1. Запустите Microsoft Excel.

  2. Нажмите Office Button () и выберите Excel Options.

  3. На левой панели Окна параметров Excel нажмите Add-Ins.

  4. На правой панели Окна параметров Excel выберите Excel Add-ins из Manage выпадающее поле.

  5. Нажмите Go.

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

  7. В диалоговом окне Excel Add-Ins проверьте, что запись MATLAB Compiler Function Wizard выбрана. Нажмите OK.

Используя Excel 2003

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

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

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

Функциональный запуск мастера

Запустите Функциональный Мастер одним из следующих способов. Когда мастер инициализировал, отображения диалогового окна Function Wizard Start Page.

Используя Excel 2007 или более новые версии Excel

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

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

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

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

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

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

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

После того, как вы установите и запустите Функциональный Мастер, сделайте следующее.

  1. От диалогового окна Function Wizard Start Page выберите I have one or more MATLAB functions that I want to use in a workbook (MATLAB installation required). Опция New Project выбрана по умолчанию. Введите значимое название проекта в поле Project Name, как testmymagic, например.

    Совет

    Некоторые клиенты находят полезным присвоить уникальное имя как Class Name (значением по умолчанию является Class1) и присваивать номер Version в целях системы контроля версий.

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

О файлах проекта

Следует иметь в виду следующую информацию о файлах проекта при работе с Функциональным Мастером:

  • Файлы проекта, созданные Функциональным Мастером, являются теми же файлами проекта, созданными и используемыми Deployment Tool (deploytool).

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

  • Если вы ранее создали компонент с помощью Функционального Мастера, мастер предложит вам загружать его.

Выход из сеанса работы с MATLAB, вызванного функциональным мастером

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

Новое определение функции MATLAB

  1. Добавьте функцию, которую вы хотите развернуть в Функциональный Мастер. Нажмите Add в области Set Up Functions Функциональной Панели управления Мастера. Диалоговое окно New MATLAB Function появляется.

  2. Просмотрите, чтобы определить местоположение вашей функции MATLAB. Выберите функцию и нажмите Open.

  3. В диалоговом окне New MATLAB Function нажмите Add. Диалоговое окно Function Properties появляется.

    Совет

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

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

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

    2. Задайте Range или Value путем выбирания подходящей опции и ввода значения.

      Внимание

      Постарайтесь не выбирать области значений с помощью клавиш со стрелками. Если необходимо использовать клавиши со стрелками, чтобы выбрать области значений, применить необходимую фиксацию от сайта Microsoft: https://mskb.pkisolutions.com/kb/291110.

    3. Нажмите Done.

    Совет

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

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

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

      Совет

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

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

      Внимание

      Постарайтесь не выбирать области значений с помощью клавиш со стрелками. Если необходимо использовать клавиши со стрелками, чтобы выбрать области значений, применить необходимую фиксацию от сайта Microsoft: https://mskb.pkisolutions.com/kb/291110.

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

    4. Нажмите Done в свойствах аргумента для y диалоговое окно.

    5. Нажмите Done в диалоговом окне Function Properties. mymagic теперь появляется в списке Active Functions Функциональной Панели управления Мастера.

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

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

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

  1. Нажмите Options во входных данных для N диалоговое окно.

    Входное Окно параметров Преобразования открывается.

  2. Нажмите Treat Missing Data As выпадающее поле.

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

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

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

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

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

  2. Функциональный Мастер поддерживает Векторные и Двумерные массивы структур, организованные или в Поэлементно или в Плоская организация для обоих вводов и выводов.

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

    1. В области Structure Array Organization выберите Element by Element Organization или Plane Organization.

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

  3. В диалоговом окне Field for Argument сделайте следующее:

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

    2. Задайте Range для поля.

      Внимание

      Постарайтесь не выбирать области значений с помощью клавиш со стрелками. Если необходимо использовать клавиши со стрелками, чтобы выбрать области значений, применить необходимую фиксацию от сайта Microsoft: https://mskb.pkisolutions.com/kb/291110.

    3. Нажмите Done.

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

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

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

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

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

Используя Макросы с Массивами структур.  Макро-функция генерации MATLAB Compiler для дополнений Excel работает с массивами структур в качестве аргументов ввода или вывода. Смотрите Макро-Создание, если у вас есть функция MATLAB, вы готовы развернуться. Смотрите Дополнение Microsoft Excel и Макро-Создание Используя Функциональный Мастер, если вы используете Функциональный Мастер, чтобы создать вашу функцию MATLAB с нуля. Смотрите Выбирают Function Deployment Workflow для получения дополнительной информации об обоих рабочих процессах.

Прототипирование функции MATLAB и отладка

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

С тех пор mymagic вызывает предзаписанный MATLAB magic функционируйте непосредственно, это не обеспечивает иллюстративный пример того, как использовать прототипирование и функцию отладки MATLAB Compiler.

Следующее является примером того, как вы можете использовать эту функцию с myprimes, функция, содержащая несколько строк кода.

Прототипирование и Отладка с myprimes

Например, скажите, что вы находитесь в процессе прототипирования кода, который использует уравнение P = myprimes(n). Это уравнение возвращает вектор-строку из простых чисел, меньше чем или равных n (простое число не имеет никаких факторов кроме 1 и сам номер).

Ваш код использует P = myprimes(n) можно следующим образом:

function [p] = myprimes(n)

if length(n)~=1, error('N must be a scalar'); end
if n < 2, p = zeros(1,0); return, end
p = 1:2:n;
q = length(p);
p(1) = 2;
for k = 3:2:sqrt(n)
    
  if p((k+1)/2)
     p(((k*k+1)/2):k:q) = 0;
  end
  
end

p = (p(p>0));

В разработке вашего кода вы хотите обработать различные варианты использования. Например, вы хотите экспериментировать со сценариями, которые могут присвоить значение вектор-столбца выходной переменной p ((myprimes только возвращает вектор-строку, как утверждено ранее). Вы следуете за этим общим рабочим процессом:

  1. Установите точку останова в myprimes в первом if оператор, с помощью графический интерфейса пользователя или dbstop, например.

  2. На Функциональной Панели управления Мастера, в области Execute Functions, нажимают Execute. Выполнение остановится в ранее точка останова набора. Отметьте значение p. Неродной через и отладка ваш код, когда вы обычно были бы с помощью редактора MATLAB.

Для получения дополнительной информации об отладке кода MATLAB, смотрите Отладку Файлы кода MATLAB.

Функциональное выполнение из MATLAB

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

  1. От Функциональной Панели управления Мастера, в области Execute Functions, выбирают Execute MATLAB Functions in MATLAB.

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

Дополнение Microsoft Excel и макро-создание Используя функциональный мастер

Функциональный Мастер может автоматически создать развертываемое дополнение Microsoft Excel и макрос. Чтобы создать ваше дополнение этим способом, используйте одну из следующих процедур.

Создание Add-In и Associated макрос Excel

Создать и развертываемое дополнение и связанный макрос Excel:

  1. В диалоговом окне Function Wizard Control Panel, в области Create Component, выбирают Create Both Excel Add-in Component and Excel Macro.

  2. Введите mymagic в поле Macro Name.

  3. Выберите местоположение того, где хранить макрос, с помощью Store Macro In выпадающее поле.

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

  5. Нажмите Create, чтобы создать обоих дополнение (а также базовый COM-компонент) и связанный макрос. Диалоговое окно Deployment Tool Build появляется, указывая на состояние дополнения и компиляции COM-компонента (сборка).

    Диалоговое окно сборки

Создание COM-компонента или макроса только, не создавая дополнение

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

  1. В диалоговом окне Function Wizard Control Panel, в области Create Component, выбирают MATLAB Excel Add-in Component Only или Create Excel Macro Only.

  2. Введите mymagic в поле Macro Name.

  3. Выберите местоположение того, где хранить макрос, с помощью Store Macro In выпадающее поле.

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

  5. Нажмите Create.

Функциональное выполнение от развернутого компонента

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

  1. От Функциональной Панели управления Мастера, в области Execute Functions, выбирают Execute MATLAB Functions from Deployed Component.

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

Макро-выполнение

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

Совет

Вы, возможно, должны включить соответствующие настройки безопасности перед рабочими макросами в 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 Excel и Упаковка Макроса с помощью Функционального Мастера

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

  1. После успешного создания вашего компонента и дополнения, в области Share Component диалогового окна Function Wizard Control Panel, рассматривают файлы, перечисленные в поле Files to include in packaging. Add File s или Remove File s к и от пакета путем нажатия соответствующих кнопок.

  2. Чтобы добавить доступ к инсталлятору MATLAB Runtime к вашему пакету, выберите одну из опций в области MATLAB Runtime. Для получения информации о MATLAB Runtime и инсталляторе MATLAB Runtime, смотрите Установку и Сконфигурируйте MATLAB Runtime.

  3. Когда вы будете готовы создать свой пакет, нажмите Create Package.

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

Чтобы получить доступ или изменить код Visual Basic, выполните эти шаги.

  1. От вкладки Excel Developer нажмите Visual Basic или нажмите ALT +F11, чтобы открыть Visual Basic Editor. В более старых версиях Excel это может быть расположено под Tools> Macro> Visual Basic Editor.

  2. В окне Project - VBAProject дважды кликните, чтобы расширить VBAProject (mymagic.xls).

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

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

Сопоставьте макрос с кнопкой графический интерфейса пользователя или управляйте (Необязательно)

Затем присоедините макрос к кнопке GUI.

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

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

    Совет

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

  3. В диалоговом окне Assign Macros выберите макрос, которому вы хотите присвоить кнопку GUI и нажать OK.

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

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

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

  • Изучите, как продукты развертывания обрабатывают ваши функции MATLAB

  • Изучите, как продукты развертывания работают совместно

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

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