Функции электронной таблицы Link™ управляют подключением и обменом данными между Microsoft ® Excel ® и MATLAB ®, не выходя из среды 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 |
| Выполнение невозможно |
Макрос Microsoft Excel VBA |
| Требуется знание Microsoft Visual Basic ®. |
Мастер функций MATLAB |
| Выполнение функции MATLAB с использованием только функций связи с электронной таблицей |
При указании функции «Связь с электронной таблицей» в ячейке листа введите формулу, начиная с + или = знак. Затем заключите аргументы функции в скобки. В данном примере формула использует MLPutMatrix функция для экспорта данных в ячейку C10 в матрицу A.
=MLPutMatrix("A",C10)
В макросах VBA оставьте пробел между именем функции и первым аргументом. Не используйте круглые скобки.
MLPutMatrix "A",C10
Чтобы изменить активную ячейку после завершения операции, выберите Инструменты Excel Параметры > Правка > Переместить выделенный фрагмент после ввода. Это действие предоставляет полезное подтверждение для длительных операций.
Функции связи с электронными таблицами наиболее эффективны в режиме автоматического расчета. Чтобы автоматизировать пересчет функции связи с электронной таблицей, добавьте ссылку на ячейку, значение которой изменяется. Например, MLPutMatrix функция снова выполняется, когда значение в ячейке C1 изменения.
=MLPutMatrix("bonds", D1:G26) + C1
Использовать MLPutMatrix в режиме ручного расчета:
Введите функцию в ячейку.
Нажмите F2.
Нажмите Enter. Функция выполняется.
Функции связи с электронными таблицами не регулируют адреса ячеек автоматически. Если в функции используются явные адреса ячеек, отредактируйте аргументы функции для ссылки на новый адрес ячейки при выполнении следующих действий:
Вставка или удаление строк или столбцов.
Переместите или скопируйте функцию в другую ячейку.
Можно указать аргументы в функциях связи с электронной таблицей с помощью имени переменной или путем ссылки на расположение данных для аргумента.
Примечание:
Функции связи с электронными таблицами ожидают, что по умолчанию будет использоваться стиль ссылки (A1) ссылки на ячейки листа. Столбцы должны обозначаться буквами, а строки - цифрами. Если лист содержит столбцы, обозначенные цифрами, а не буквами, выполните следующие действия.
Выберите «Сервис» > «Параметры».
Откройте вкладку Общие.
В разделе «Параметры» снимите флажок «Стиль ссылки на R1C1».
В большинстве функций связи с электронной таблицей можно прямо или косвенно указать аргумент имени переменной.
Чтобы указать имя переменной непосредственно, заключите его в двойные кавычки, например: =MLDeleteMatrix("Bonds").
Чтобы указать имя переменной в качестве косвенной ссылки, введите его без кавычек. Функция вычисляет содержимое аргумента для получения имени переменной. Аргумент должен быть адресом ячейки листа или именем диапазона; например, =MLDeleteMatrix(C1).
Примечание
Функции связи с электронными таблицами не поддерживают глобальные переменные. При обмене данными между Excel и MATLAB программное обеспечение использует базовую рабочую область. Переменные в базовой рабочей области существуют до тех пор, пока они не будут удалены или не завершится сессия MATLAB.
Аргумент data-location должен быть адресом ячейки листа или именем диапазона.
Не заключать аргумент «местоположение данных» в кавычки (кроме как в MLGetMatrix, которая имеет уникальные условные обозначения аргументов).
Аргумент местоположения данных может включать номер листа, например Sheet3!B1:C7 или Sheet2!OUTPUT.
Совет:
Можно ссылаться на специальные символы как часть имени листа в MLGetMatrix или MLPutMatrix заключив имя листа в одинарные кавычки ('').
После поиска функции 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, такими как соединения с поставщиками услуг, следует создать функцию-оболочку. Функция оболочки выполняет функции, которые создают эти объекты и управляют ими.
matlabfcn | matlabinit | MLEvalString | MLGetMatrix | MLPutMatrix