Если вы находитесь все еще в процессе разработки функции 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 находятся в
. Следующая таблица идентифицирует примеры папкой:matlabroot
\toolbox\matlabxl\examples\
Например, файлы, относящиеся... | Найдите пример кода в папке... | Например, документация видит... |
---|---|---|
Пример магического квадрата | xlmagic | Интегрируйте дополнение и COM-компонент с Microsoft Excel |
Пример аргумента переменной длины | xlmulti | Работа с вводами и выводами переменной длины |
Вызов скомпилированных функций MATLAB от Microsoft Excel | xlbasic | Вызов скомпилированных функций MATLAB от Microsoft Excel |
Пример спектрального анализа | xlspectral | Создайте и интегрируйте функции спектрального анализа |
В этом примере вы тестируете файл MATLAB (mymagic.m
) содержа предопределенную функцию MATLAB magic
. Вы тестируете, чтобы иметь базовую линию, чтобы выдержать сравнение с результатами функции, когда это готово развернуться.
В 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)
В командной строке 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.
Кликните по вкладке File.
На левой панели навигации выберите Options.
В Окне параметров Excel, на левой панели навигации, выбирают Add-Ins.
В Том, чтобы управлять выпадающим, выберите Excel Add-Ins и нажмите Go.
В диалоговом окне Add-Ins нажмите Browse.
Просмотрите к
, и выберите matlabroot
/toolbox/matlabxl/matlabxl/arch
FunctionWizard2007.xlam
. Нажмите OK.
В диалоговом окне Excel Add-Ins проверьте, что запись MATLAB Compiler Function Wizard выбрана. Нажмите OK.
Вкладка Home Ленты Microsoft Excel должна теперь содержать Функциональную мозаику Мастера. Смотрите вкладку Home Ленты Microsoft Office с Функциональным Установленным Мастером.
Запустите Microsoft Excel, если он уже не запускается.
Нажмите Office Button () и выберите Excel Options.
На левой панели Окна параметров Excel нажмите Add-Ins.
На правой панели Окна параметров Excel, select Excel Add-ins от Manage выпадающее поле.
Нажмите Go.
Нажмите Browse. Перейдите к
и выберите matlabroot
\toolbox\matlabxl\matlabxl\arch
FunctionWizard2007.xlam
. Нажмите OK.
В диалоговом окне Excel Add-Ins проверьте, что запись MATLAB Compiler Function Wizard выбрана. Нажмите OK.
Выберите Tools> Add-Ins из главного меню Excel.
Если Функциональный Мастер был ранее установлен, Мастер Функции MATLAB Compiler появляется в списке. Выберите элемент и нажмите ОК.
Если Функциональный Мастер не был ранее установлен, нажмите Browse и перейдите к matlabroot
\toolbox\matlabxl\matlabxl
папка. Выберите FunctionWizard.xla
. Нажмите ОК, чтобы продолжить.
Запустите Функциональный Мастер одним из следующих способов. Когда мастер инициализировал, отображения диалогового окна Function Wizard Start Page.
В Microsoft Excel, на ленте Microsoft Office, на вкладке Home, выбирают Function Wizard.
Вкладка Home ленты Microsoft Office с функциональным установленным мастером
Вы можете также Мастер функции доступа от вкладки File.
Выберите File> Options> Add-Ins из главного меню Excel.
Выберите Function Wizard.
Функциональное диалоговое окно начальной страницы мастера
После того, как вы установите и запустите Функциональный Мастер, сделайте следующее.
От диалогового окна 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 в целях системы контроля версий.
Нажмите OK. Функциональная Панель управления Мастера отображается с включенной кнопкой Add Function.
Следует иметь в виду следующую информацию о файлах проекта при работе с Функциональным Мастером:
Файлы проекта, созданные Функциональным Мастером, являются теми же файлами проекта, созданными и используемыми Deployment Tool (deploytool
).
Функциональный Мастер предлагает вам задавать местоположение для своих файлов проекта, когда вы открываете свой первый новый проект. Файлы проекта сохраняются автоматически к этому местоположению и могут быть открыты в будущем или через Deployment Tool или через Функциональный Мастер.
Если вы ранее создали компонент с помощью Функционального Мастера, мастер предложит вам загружать его.
Постарайтесь не вручную отключать сеанс работы с MATLAB, вызванный Функциональным Мастером. Выполнение так может препятствовать тому, чтобы вы использовали связанные с MATLAB функции Мастера от своего сеанса Excel. Если вы хотите выйти из удаленно вызванного сеанса работы с MATLAB, перезапустите Excel.
Добавьте функцию, которую вы хотите развернуть в Функциональный Мастер. Нажмите Add в области Set Up Functions Функциональной Панели управления Мастера. Диалоговое окно New MATLAB Function появляется.
Просмотрите, чтобы определить местоположение вашей функции MATLAB. Выберите функцию и нажмите Open.
В диалоговом окне New MATLAB Function нажмите Add. Диалоговое окно Function Properties появляется.
Область Function Syntax and Help, в диалоговом окне Function Properties, отображает первую текстовую строку справки (иногда названный H1 line) в функции MATLAB. Отображение этих комментариев в диалоговом окне Function Properties может быть полезным при развертывании новых или незнакомых функций MATLAB в конечных пользователей.
Задайте свойства входного параметра можно следующим образом.
На вкладке Input нажмите Set Input Data. Входные данные для n
диалоговое окно появляется.
Задайте Range или Value путем выбирания подходящей опции и ввода значения.
Постарайтесь не выбирать области значений с помощью клавиш со стрелками. Если необходимо использовать клавиши со стрелками, чтобы выбрать области значений, применить необходимую фиксацию от сайта Microsoft: https://support.microsoft.com/kb/291110.
Нажмите Done.
Чтобы задать как MATLAB Compiler для дополнительных ячеек пробела указателей Excel (или ячеек, содержащих данные), смотрите Управление Значением Пустой ячейки.
Задайте свойства выходного аргумента можно следующим образом.
На вкладке Output нажмите Set Output Data. Выходные данные для y
диалоговое окно появляется, где x
имя выходной переменной, из которой вы задаете свойства.
Можно также задать MATLAB Compiler к Auto Resize, Transpose или вывести данные в формате даты (Output as date). Для этого выберите подходящую опцию в Argument Properties Для y
диалоговое окно.
Задайте Range. Поочередно, выберите область значений ячеек на вашем листе Excel; область значений будет вводиться для вас в поле Range.
Постарайтесь не выбирать области значений с помощью клавиш со стрелками. Если необходимо использовать клавиши со стрелками, чтобы выбрать области значений, применить необходимую фиксацию от сайта Microsoft: https://support.microsoft.com/kb/291110.
Выберите Auto Resize, если он уже не выбран.
Нажмите Done в свойствах аргумента для y
диалоговое окно.
Нажмите Done в диалоговом окне Function Properties. mymagic
теперь появляется в списке Active Functions Функциональной Панели управления Мастера.
Можно задать как пустые ячейки процессов MATLAB Compiler, позволив вам присвоить неопределенный или непредставленный (NaN
, например) значения данных им.
Чтобы задать, как обработать пустые ячейки, сделайте следующее.
Нажмите Options во входных данных для N
диалоговое окно.
Входное Окно параметров Преобразования открывается.
Нажмите Treat Missing Data As выпадающее поле.
Задайте или Zero или NaN (Not a Number), в зависимости от того, как вы хотите обработать пустые ячейки.
Чтобы присвоить области значений полям в массиве структур, сделайте следующее:
Если вы уже не сделали так, выберите This is a MATLAB structure array argument во Входных данных для n
диалоговое окно и нажимает OK.
Входные данные для аргумента массива структур n
диалоговое окно открывается.
Функциональный Мастер поддерживает Векторные и Двумерные массивы структур, организованные или в Поэлементно или в Плоская организация для обоих вводов и выводов.
Во входных данных для аргумента массива структур n
диалоговое окно, сделайте следующее:
В области Structure Array Organization выберите Element by Element Organization или Plane Organization.
Нажмите Add Field, чтобы добавить поля для каждого из ваших аргументов массива структур. Диалоговое окно Field for Structure Array Argument открывается.
В диалоговом окне Field for Argument сделайте следующее:
В поле Name задайте имя поля. Name, который вы задаете, должен совпадать с именем поля массива структур в вашей функции MATLAB.
Задайте Range для поля.
Постарайтесь не выбирать области значений с помощью клавиш со стрелками. Если необходимо использовать клавиши со стрелками, чтобы выбрать области значений, применить необходимую фиксацию от сайта Microsoft: https://support.microsoft.com/kb/291110.
Нажмите 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.
Начиная с mymagic
вызывает предзаписанный MATLAB magic
функционируйте непосредственно, это не обеспечивает иллюстративный пример того, как использовать прототипирование и функцию отладки MATLAB Compiler.
Следующее является примером того, как вы можете использовать эту функцию с 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
только возвращает вектор-строку, как утверждено ранее). Вы следуете за этим общим рабочим процессом:
Установите точку останова в myprimes
в первом if
оператор, с помощью графический интерфейса пользователя или dbstop
, например.
На Функциональной Панели управления Мастера, в области Execute Functions, нажимают Execute. Выполнение остановится в ранее точка останова набора. Отметьте значение p
. Неродной через и отладка ваш код, когда вы обычно были бы с помощью редактора MATLAB.
Для получения дополнительной информации об отладке кода MATLAB, смотрите Отладку программа MATLAB (MATLAB).
Протестируйте свою развертываемую функцию MATLAB путем выполнения его в MATLAB:
От Функциональной Панели управления Мастера, в области Execute Functions, выбирают Execute MATLAB Functions in MATLAB.
Нажмите Execute. В Excel функция Магического квадрата выполняется, приводя к результатам, похожим на следующее.
Функциональный Мастер может автоматически создать развертываемое дополнение Microsoft Excel и макрос. Чтобы создать ваше дополнение этим способом, используйте одну из следующих процедур.
Создать и развертываемое дополнение и связанный макрос Excel:
В диалоговом окне Function Wizard Control Panel, в области Create Component, выбирают Create Both Excel Add-in Component and Excel Macro.
Введите mymagic
в поле Macro Name.
Выберите местоположение того, где хранить макрос, с помощью Store Macro In выпадающее поле.
Введите краткое описание функциональности макроса в поле Description.
Нажмите Create, чтобы создать обоих дополнение (а также базовый COM-компонент) и связанный макрос. Диалоговое окно Deployment Tool Build появляется, указывая на состояние дополнения и компиляции COM-компонента (сборка).
Диалоговое окно сборки
Чтобы создать или COM-компонент или макрос, также не создавая дополнение Excel, сделайте следующее
В диалоговом окне Function Wizard Control Panel, в области Create Component, выбирают MATLAB Excel Add-in Component Only или Create Excel Macro Only.
Введите mymagic
в поле Macro Name.
Выберите местоположение того, где хранить макрос, с помощью Store Macro In выпадающее поле.
Введите краткое описание функциональности макроса в поле Description.
Нажмите Create.
Выполните свою функцию, когда вы сделали так же в Функциональном Выполнении из MATLAB, но на этот раз выполняете ее от развернутого компонента, чтобы гарантировать, что она совпадает с вашим предыдущим выходом.
От Функциональной Панели управления Мастера, в области Execute Functions, выбирают Execute MATLAB Functions from Deployed Component.
Нажмите Execute. В Excel функция Магического квадрата выполняется, приводя к результатам, похожим на следующее.
Запустите макрос, который вы создали в Макро-Создании путем выполнения одного из следующих, после сначала очищающиеся ячейки A1:E5
(которые содержат выход функции Магического квадрата, которую вы запустили в Функциональном Выполнении).
Вы, возможно, должны включить соответствующие настройки безопасности перед рабочими макросами в Microsoft Excel. Для получения информации о макро-полномочиях и связанных сообщениях об ошибке, см. приложение Ошибок и Решений.
В Microsoft Excel нажмите View > Macros > View Macros.
Выберите mymagic
от Macro name выпадающее поле.
Нажмите Run. Ячейки A1:E5
на Excel лист автоматически заполняются с выходом mymagic
.
В Microsoft Excel нажмите Tools > Macro > Macros.
Выберите mymagic
от Macro name выпадающее поле.
Нажмите Run. Ячейки A1:E5
на Excel лист автоматически заполняются с выходом mymagic
.
Функциональный Мастер может автоматически группировать развертываемое дополнение Microsoft Excel и макрос для совместного использования. Чтобы группировать ваше дополнение этим способом, используйте одну из следующих процедур.
После успешного создания вашего компонента и дополнения, в области Share Component диалогового окна Function Wizard Control Panel, рассматривают файлы, перечисленные в поле Files to include in packaging. Add File s или Remove File s к и от пакета путем нажатия соответствующих кнопок.
Чтобы добавить доступ к инсталлятору MATLAB Runtime к вашему пакету, выберите одну из опций в области MATLAB Runtime. Для получения информации о MATLAB Runtime и инсталляторе MATLAB Runtime, смотрите Установку и Сконфигурируйте MATLAB Runtime.
Когда вы будете готовы создать свой пакет, нажмите Create Package.
Опционально, можно хотеть получить доступ к коду Visual Basic или изменить его, в зависимости от экспертного знания программирования или доступности разработчика Excel. Если так, выполните эти шаги.
Из главного окна Excel откройте редактор Microsoft Visual Basic путем выполнения одного из следующих. выберите Tools> Macro> Visual Basic Editor.
Нажмите Developer > Visual Basic.
Когда Visual Basic Editor откроется в окне Project - VBAProject, дважды кликните, чтобы расширить VBAProject (mymagic.xls)
.
Расширьте Modules
папка и дважды кликает Matlab Macros
модуль.
Это открывает окно Visual Basic Code с кодом для этого проекта.
Нажмите Tools > Macro > Visual Basic Editor.
Когда Visual Basic Editor откроется в окне Project - VBAProject, дважды кликните, чтобы расширить VBAProject (mymagic.xls)
.
Расширьте Modules
папка и дважды кликает Matlab Macros
модуль.
Это открывает окно VB Code с кодом для этого проекта.
Чтобы присоединить макрос к кнопке GUI, сделайте следующее:
Нажмите Developer > Insert.
В меню Form Controls выберите значок Button (Form Control).
Наведите своя мышь на меню Form Controls, чтобы видеть различные метки управления.
В диалоговом окне Assign Macros выберите макрос, вы хотите присвоить кнопку GUI и нажать OK.
Присоединение макроса к кнопке
Если вы хотите... | Смотрите... |
---|---|
| Запишите развертываемый код MATLAB |
Смотрите больше примеров о создании дополнений и COM-компонентов | Создайте макросы из функций MATLAB |
Узнайте больше о MATLAB Runtime | О MATLAB Runtime |
Узнать, как настроить и интегрировать COM-компонент вы созданный путем изменения кода Microsoft Visual Basic | Интегрируйте Компоненты с помощью Приложения Visual BasicСоздайте и интегрируйте функции спектрального анализа |