Функции 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.
Соединитесь функции управления инициализируют, запускают и останавливают программное обеспечение MATLAB и Spreadsheet Link. Выполните функцию 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
Для получения дополнительной информации о записи функций, смотрите, Создают Функции в Файлах (MATLAB).
Microsoft Excel не имеет никакого контекста для объектов MATLAB. Чтобы работать с объектами MATLAB, такими как связи с поставщиками услуг, пишут функцию обертки. Функция обертки выполняет функции, которые создают и управляют этими объектами.
MLEvalString
| MLGetMatrix
| MLPutMatrix
| matlabfcn
| matlabinit