Выполнение функций 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 имеются функции управления ссылками и управления данными.

Функции управления ссылками инициализируют, запускают и останавливают программное обеспечение Spreadsheet Link и MATLAB. Выполните 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
    

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

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

См. также

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте