exponenta event banner

Выполнение функций связи с электронными таблицами

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

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

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

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

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

Различия между электронными таблицами и функциями Microsoft Excel

В Microsoft Excel ввод функций связи с электронной таблицей может быть аналогичен функциям Microsoft Excel. Различия включают в себя:

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

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

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

Типы функций связи с электронными таблицами

В приложении «Связь с электронной таблицей» предусмотрены функции управления связями и данными.

Функции управления связями инициализируют, запускают и останавливают программное обеспечение электронной таблицы и MATLAB. Выполните команду matlabinit в меню «Макрос» или в подпрограммах макросов.

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

Метод выполнения функции связи с электронной таблицей

Эти различные методы позволяют выполнять функции связи с электронными таблицами.

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

Лента Microsoft Excel

Быстрый доступ к общей функции связи с электронными таблицами в группе MATLAB:

Полная функциональность связи с электронной таблицей недоступна.

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

Быстрый доступ к общей функции связи с электронными таблицами в ячейке листа:

Полная функциональность связи с электронной таблицей недоступна.

Ячейка листа Microsoft Excel

  • Выполните любую функцию связи с электронной таблицей.

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

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

Макрос Microsoft Excel VBA

  • Выполните любую функцию связи с электронной таблицей.

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

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

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

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

  • Поиск функции MATLAB по категории или папке.

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

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

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

Выполнение функции MATLAB с использованием только функций связи с электронной таблицей matlabfcn и matlabsub.

Определение функции связи с электронными таблицами в Microsoft Excel

При указании функции «Связь с электронной таблицей» в ячейке листа введите формулу, начиная с + или = знак. Затем заключите аргументы функции в скобки. В данном примере формула использует MLPutMatrix функция для экспорта данных в ячейку C10 в матрицу A.

=MLPutMatrix("A",C10)

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

MLPutMatrix "A",C10

Чтобы изменить активную ячейку после завершения операции, выберите Инструменты Excel Параметры > Правка > Переместить выделенный фрагмент после ввода. Это действие предоставляет полезное подтверждение для длительных операций.

Задать режим расчета

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

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

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

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

  2. Нажмите F2.

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

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

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

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

Задать аргументы функции связи с электронной таблицей

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

Примечание:

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

  1. Выберите «Сервис» > «Параметры».

  2. Откройте вкладку Общие.

  3. В разделе «Параметры» снимите флажок «Стиль ссылки на R1C1».

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

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

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

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

Примечание

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

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

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

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

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

    Совет:

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

Определение функции MATLAB в мастере функций MATLAB

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

Для выполнения функции MATLAB с несколькими выходами укажите место записи вывода.

  • Задание целевого диапазона ячеек с помощью поля Необязательные выходные ячейки приводит к отображению выбранной функции в текущей ячейке листа в качестве аргумента 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, такими как соединения с поставщиками услуг, следует создать функцию-оболочку. Функция оболочки выполняет функции, которые создают эти объекты и управляют ими.

См. также

| | | |

Связанные темы