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

Функции Spreadsheet Link™ справляются со связью и обменом данными между Microsoft® Excel® и MATLAB®, не оставляя среду Microsoft Excel.

Чтобы выполнить функции Spreadsheet Link, вы должны:

  • Поймите различия между этими функциями и функциями Microsoft Excel.

  • Выберите правильный функциональный тип, метод выполнения и режим вычисления для вашей ситуации.

  • Решите, как задать функции и аргументы.

Spreadsheet Link и различия в функции Microsoft Excel

В Microsoft Excel, вводя функции Spreadsheet Link может быть подобно функциям Microsoft Excel. Различия включают:

  • Функции Spreadsheet Link выполняют действие, в то время как функции Microsoft Excel возвращают значение.

  • Имена функций Spreadsheet Link являются нечувствительными к регистру. Ввод или MLPutMatrix или mlputmatrix выполняет функцию MLPutMatrix.

  • Имена функции MATLAB и имена переменных являются чувствительными к регистру. Например, BONDS, Bonds и bonds являются три различных переменные MATLAB.

Типы функции Spreadsheet Link

Существует управление ссылкой и функции управления данными в Spreadsheet Link.

Соединитесь функции управления инициализируют, запускают и останавливают программное обеспечение MATLAB и Spreadsheet Link. Выполните функцию matlabinit из меню Excel Tools> Macro или в макро-стандартных подпрограммах.

Управление данными функционирует данные о копии между Microsoft Excel и рабочим пространством MATLAB. Эти функции выполняют команды MATLAB в Microsoft Excel. За исключением MLPutVar и MLGetVar, можно выполнить любую функцию управления данными как формулу ячейки рабочего листа или в макросе VBA. MLPutVar и функции MLGetVar выполняются только в макросах VBA.

Метод выполнения функции Spreadsheet Link

Можно выполнить функции Spreadsheet Link с помощью этих различных методов.

Метод выполненияПреимуществаОграничения

Лента Microsoft Excel

Быстро доступ общая функциональность Spreadsheet Link в группе MATLAB:

Полная функциональность Spreadsheet Link недоступна.

Контекстное меню Microsoft Excel

Быстро доступ общая функциональность Spreadsheet Link в ячейке рабочего листа:

Полная функциональность Spreadsheet Link недоступна.

Ячейка рабочего листа Microsoft Excel

  • Выполните любую функцию Spreadsheet Link.

  • Выполните функции MATLAB.

Вы не можете выполнить MLGetVar, MLPutVar или matlabinit в ячейке рабочего листа.

Microsoft Excel макрос VBA

  • Выполните любую функцию Spreadsheet Link.

  • Выполните функции MATLAB.

  • Выполните усовершенствованный код VBA.

Требует знания Microsoft Visual Basic®.

Мастер функции MATLAB

  • Найдите функцию MATLAB по категориям или папку.

  • Исследуйте синтаксисы функции MATLAB.

  • Выполните функцию MATLAB путем выбора синтаксиса и определения аргументов.

  • Выполните пользовательскую функцию MATLAB.

Выполните функцию MATLAB с помощью только функции Spreadsheet Link matlabfcn и matlabsub.

Задайте функцию Spreadsheet Link в Microsoft Excel

Когда вы зададите функцию Spreadsheet Link в ячейке рабочего листа, введите формулу начиная со знака = или +. Затем заключите аргументы функции в круглые скобки. Эта формула в качестве примера использует функцию MLPutMatrix, чтобы экспортировать данные в ячейке C10 в матричный A.

=MLPutMatrix("A",C10)

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

MLPutMatrix "A",C10

Чтобы изменить активную ячейку, когда операция завершится, выберите Excel Tools Options> Edit> Move Selection after Enter. Это действие обеспечивает полезное подтверждение для долгих операций.

Установите режим вычисления

Функции Spreadsheet Link являются самыми эффективными при автоматическом режиме вычисления. Чтобы автоматизировать перерасчет функции Spreadsheet Link, добавьте ссылку на ячейку на ячейку, значение которой изменяется. Например, функция MLPutMatrix выполняется снова, когда значение в ячейке C1 изменяется.

=MLPutMatrix("bonds", D1:G26) + C1

Использовать MLPutMatrix в ручном режиме вычисления:

  1. Введите функцию в ячейку.

  2. Нажмите F2.

  3. Нажмите Enter. Функция выполняется.

Функции Spreadsheet Link автоматически не настраивают адреса ячеек. Если вы используете явные адреса ячеек в функции, редактируете аргументы функции, чтобы сослаться на новый адрес ячейки когда вы:

  • Вставьте или удалите строки или столбцы.

  • Переместите или скопируйте функцию в другую ячейку.

Задайте аргументы функции Spreadsheet Link

Можно задать аргументы в функциях Spreadsheet Link с помощью имени переменной или путем ссылки на местоположение данных для аргумента.

Примечание:

Функции Spreadsheet Link ожидают стиль ссылки по умолчанию (A1) ссылки на ячейки рабочего листа. Столбцы должны определяться с буквами и строками с числами. Если ваш рабочий лист показывает, что столбцы, определяемые с числами вместо букв, то выполняют эту процедуру:

  1. Выберите Tools> Options.

  2. Кликните по вкладке General.

  3. Под Settings снимите флажок R1C1 reference style.

Аргументы имени переменной

  • Можно прямо или косвенно задать аргумент имени переменной в большинстве функций Spreadsheet Link.

    • Чтобы задать имя переменной непосредственно, заключите его в двойные кавычки, например, =MLDeleteMatrix("Bonds").

    • Чтобы задать имя переменной как косвенную ссылку, введите его без кавычек. Функция оценивает содержимое аргумента, чтобы получить имя переменной. Аргумент должен быть адресом ячейки рабочего листа или именем диапазона; например, =MLDeleteMatrix(C1).

Примечание

Функции Spreadsheet Link не поддерживают глобальные переменные. При обмене данными между Excel и MATLAB, программное обеспечение использует базовое рабочее пространство. Переменные в базовом рабочем пространстве существуют, пока вы не очищаете их или заканчиваете ваш сеанс работы с MATLAB.

Аргументы местоположения данных

  • Аргумент местоположения данных должен быть адресом ячейки рабочего листа или именем диапазона.

  • Не заключайте аргумент местоположения данных в кавычки (кроме MLGetMatrix, который имеет уникальные соглашения аргумента).

  • Аргумент местоположения данных может включать номер рабочего листа, такой как Sheet3!B1:C7 или Sheet2!OUTPUT.

    Совет:

    Можно сослаться на специальные символы как на часть имени рабочего листа в MLGetMatrix или MLPutMatrix путем включения имени рабочего листа в одинарных кавычках ('').

Задайте функцию MATLAB в мастере функции MATLAB

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

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

  • Определение целевого диапазона ячеек с помощью поля Optional output cell(s) заставляет выбранную функцию появляться в текущей ячейке рабочего листа в качестве аргумента matlabsub. Функция matlabsub включает аргумент, который указывает, где записать вывод. Например, данные из A2 вводятся к функции rand, и целевой ячейкой для вывода является B2:

    =matlabsub("rand","Sheet1!$B$2",Sheet1!$A$2)

  • Несмотря на то, что Функциональный Мастер позволяет вам задать несколько выходных ячеек, он не возвращает несколько выходных параметров. Если вы задаете область значений выходных ячеек, мастер возвращает первый выходной аргумент, запускающийся в первой выходной ячейке. Например, если функция возвращает два элемента a и b, и вы задаете A1:A2 как выходные ячейки, Функциональный Мастер отображает a в ячейке A1. Функциональный Мастер отбрасывает элемент b. Если вывод является матрицей, Функциональный Мастер отображает все элементы той матрицы, запускающейся в первой выходной ячейке.

    Для нескольких выходных аргументов смотрите, Возвращают Несколько Выходных аргументов в функцию MATLAB.

Чтобы выполнить несколько функций MATLAB или использовать объекты MATLAB, запишите функцию обертки.

  • Функциональный Мастер не позволяет одновременное выполнение нескольких функций MATLAB. Запишите функцию обертки вместо этого. Например, чтобы отобразить исторические данные цены закрытия на графике из Bloomberg®, введите этот код в MATLAB и сохраните его как функцию.

    function plotbloombergdata(s)
    % plotbloombergdata is a wrapper function that connects to 
    % Bloomberg(R), retrieves historical closing-price data for 
    % the year 2015, and plots the prices for a given 
    % Bloomberg(R) security s.
        c = blp;
        f = 'LAST_PRICE';
        fromdate = '01/01/2015';
        todate = '12/31/2015';
        d = history(c,s,f,fromdate,todate);
        plot(d(:,1),d(:,2))
        close(c)
    end
    

    Для получения дополнительной информации о записи функций, смотрите, Создают Функции в Файлах (MATLAB).

  • Microsoft Excel не имеет никакого контекста для объектов MATLAB. Чтобы работать с объектами MATLAB, такими как связи с поставщиками услуг, пишут функцию обертки. Функция обертки выполняет функции, которые создают и управляют этими объектами.

Смотрите также

| | | |

Похожие темы