Функции Spreadsheet Link™ управляют соединением и обменом данными между Microsoft® Excel® и MATLAB®, не выходя из окружения 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. Выполните matlabinit
функция из меню Excel Tools > Macro или в макро- стандартные подпрограммы.
Функции управления данными копируют данные между Microsoft Excel и рабочим пространством MATLAB. Эти функции выполняют команды MATLAB в Microsoft Excel. Кроме MLPutVar
и MLGetVar
можно выполнить любую функцию управления данными как формулу камеры листа или в макросе VBA. MLPutVar
и MLGetVar
функции выполняются только в макросах VBA.
Можно выполнять Spreadsheet Link функции с помощью этих различных методов.
Метод выполнения | Преимущества | Ограничения |
---|---|---|
Лента Microsoft Excel | Быстрый доступ к общим функциям Spreadsheet Link в группе MATLAB:
| Полные функции Spreadsheet Link недоступны. |
Контекстное меню Microsoft Excel | Быстрый доступ к общим функциям Spreadsheet Link в камере листа:
| Полные функции Spreadsheet Link недоступны. |
Камера таблицы Microsoft Excel |
| Вы не можете выполнить |
Макрос Microsoft Excel VBA |
| Требуется знание Microsoft Visual Basic®. |
Мастер функций MATLAB |
| Выполните функцию MATLAB, используя только функции Spreadsheet Link |
Когда вы задаете функцию 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
в ручном режиме вычисления:
Введите функцию в камеру.
Нажмите F2.
Нажмите Enter. Функция выполняется.
Функции «Spreadsheet Link» не настраивают адреса камер автоматически. Если вы используете явные адреса камер в функции, отредактируйте аргументы функции, чтобы ссылаться на новый адрес камеры, когда вы:
Вставка или удаление строк или столбцов.
Переместите или скопируйте функцию в другую камеру.
Можно задать аргументы в функциях Spreadsheet Link с помощью имени переменной или путем ссылки на расположение данных для аргумента.
Примечание:
Spreadsheet Link функции ожидают, что лист стиля привязки (A1) по умолчанию камера ссылки. Столбцы должны быть обозначены буквами, а строки - цифрами. Если на листе показаны столбцы, обозначенные цифрами вместо букв, выполните следующую процедуру:
Выберите Tools > Options.
Перейдите на вкладку General.
В разделе 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, можно задать синтаксис и аргументы. Затем 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, такими как соединения с поставщиками услуг, напишите функцию обертки. Функция-оболочка выполняет функции, которые создают и манипулируют этими объектами.
matlabfcn
| matlabinit
| MLEvalString
| MLGetMatrix
| MLPutMatrix