Этот пример показывает вам, как работать с и создать макросы из, функции, которые имеют вводы и выводы переменной длины.
Проверьте, что вы соответствовали всему MATLAB® Compiler™ Excel® целевые требования. Для получения дополнительной информации смотрите MATLAB Compiler для Дополнительных Необходимых условий Microsoft Excel.
Проверьте, что у вас есть Microsoft® Excel установлен.
Укажите mwcomutil.dll на целевой машине.
В системном командном окне перейдите к (matlabroot представляет местоположение MATLAB или MATLAB Runtime в вашей системе), и запустите следующую команду: matlabroot\bin\win64
mwregsvr mwcomutil.dll
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить дополнение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime (MATLAB Compiler SDK).
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
Скопируйте xlmulti папка в качестве примера, которая поставляется с MATLAB к вашей папке работы:
copyfile(fullfile(matlabroot,'toolbox','matlabxl','examples','xlmulti'),'xlmulti')
В командной строке MATLAB перейдите к новому xlmulti папка в вашей папке работы.
Исследуйте myplot, myprimes, и mysum функции.
myplot берет один целочисленный вход и строит график от 1 до того номера.
function myplot(x)
plot(1:x)myprimes берет один целочисленный вход n и возвращает все простые числа, меньше чем или равные n.
function p = primes(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);
mysum берет вход varargin из типа integer, добавляют все числа и возвращают результат.
function y = mysum(varargin)
y = sum([varargin{:}])Файл Microsoft Excel xlmulti.xls демонстрирует эти функции несколькими способами.
Создайте дополнение Excel с приложением Library Compiler или compiler.build.excelAddIn использование следующей информации:
| Поле | Значение |
|---|---|
| Имя библиотеки | xlmulti |
| ClassName | xlmulticlass |
| Файлы, чтобы скомпилировать | myplot.m
myprimes.m
mysum.m |
Например, если вы используете compiler.build.excelAddInВвод:
buildResults = compiler.build.excelAddIn(["myplot.m","myprimes.m","mysum.m"], ... 'AddInName','xlmulti', ... 'ClassName','xlmulticlass', ... 'GenerateVisualBasicFile','on');
Для получения дополнительной информации см. инструкции в Create Дополнение Excel из MATLAB.
Запустите Microsoft Excel в своей системе.
Откройте файл xlmulti.xls.
Пример появляется как показано:

Примечание
Если подсказка Excel говорит, что этот файл содержит макросы, нажмите Enable Macros, чтобы запустить этот пример.
Вызывать функциональный myplot со значением 4, сделайте A7 (=myplot(4)) активная ячейка. Нажмите F2 и затем Войдите.

Эта процедура строит график от 1 до 4 в Графическом окне MATLAB. Этой диаграммой можно управлять так же к способу, которым можно было бы управлять фигурой в MATLAB. Некоторая функциональность, такая как способность изменить стиль линии или окрасить, не доступна.
Ячейка вызова содержит 0, потому что функция не возвращает значение.
Следующий рисунок вызывает функциональный mysum четырьмя различными способами:
Первое (ячейка A14) принимает значения 1 - 10, добавляет их и возвращает результат 55 (=mysum(1,2,3,4,5,6,7,8,9,10)).
Второе (ячейка A19) берет объект области значений, который является областью значений ячеек со значениями 1 - 10, добавляет их и возвращает результат 55 (=mysum(B19:K19)).
Третье (ячейка A24) берет несколько объектов области значений, добавляет их и возвращает результат 120 (=mysum(B24:K24,B25:L25,B26:D26)). Этот рисунок демонстрирует, что области значений не должны быть одного размера и что всем ячейкам не нужно значение.
Четвертое (ячейка A30) берет комбинацию объекта области значений и явным образом объявленных стоимостей, добавляет их и возвращает результат 16 (=mysum(10,B30:D30)).

Этот рисунок запускается, когда файл Excel открыт. Чтобы повторно активировать рисунок, активируйте соответствующую ячейку, затем нажмите, F2, сопровождаемый, Входят.
На следующем рисунке, макро-myprimes вызывает функциональный myprimes.m с начальным значением 10 в ячейке A42. Функция возвращает все простые числа меньше чем 10 в ячейки B42 через E42.

Выполнить макрос, из основного окна Excel (не Visual Basic® Редактор), открытый диалоговое окно Macro путем нажатия клавиш Alt и F8 одновременно, или путем выбора Tools> Macro> Macros.
Выберите myprimes из списка и нажимают Run.

Эта функция автоматически изменяет размер, если возвращенный выходной параметр больше, чем выходной указанный диапазон. Измените значение в ячейке A42 к номеру, больше, чем 10. Затем повторно выполните макрос. Выход возвращает все простые числа меньше, чем номер, который вы ввели в ячейке A42.

От вкладки Developer нажмите Visual Basic или нажмите ALT +F11, чтобы открыть Visual Basic Editor. В более старых версиях Excel это может быть расположено под Tools> Macro> Visual Basic Editor.
В окне Project - VBAProject дважды кликните, чтобы расширить VBAProject (xlmulti.xls).
Расширьте Modules папка и дважды кликает Module1 модуль. Это открывает окно VB Code с кодом для этого проекта.
libraryCompiler (MATLAB Compiler SDK) | compiler.build.excelAddIn | deploytool (MATLAB Compiler SDK)