DDEPoke MethodКлиенты отправляют данные в MATLAB, используя операцию DDEpoke.
DDEPoke(Channel, Item, Data)
Channel (Тип- Long). Номер канала, установленный с помощью метода DDEInitiate.
Item (Тип-Variant). Элемент, к которому данные посылаются.
Data (Тип- Variant). Данные, которые посылаются приложению.
Машинный раздел поддерживает DDEpoke для того, чтобы модифицировать или создавать новые матрицы в рабочем пространстве MATLAB . Указанный элемент - имя матрицы, которая будет модифицирована или создана. Если матрица с указанным именем уже существует в рабочем пространстве, она будет модифицирована; иначе она будет создана. Матричные данные могут быть в формате Text или XLTable.
Таблица суммирует параметры DDE poke.
Item |
Format |
Записанные Данные |
<matrix name> |
Text |
Символьный буфер, разграниченные позицией табуляции столбцы, CR/LF-разграниченные строки |
<matrix name> |
XLTable |
Двоичные данные в формате, совместимом с Microsoft Excel |
Пример1
channelNumber = Application.DDEInitiate( _
app:="WinWord", _
topic:="C:\WINWORD\SALES.DOC")
Set rangeToPoke = Worksheets("Sheet1").Range("A1")
Application.DDEPoke channelNumber, "\StartOfDoc", rangeToPoke
Application.DDETerminate channelNumber
Открывает DDE канал с приложением и возвращает номер канала.
DDETerminate(Channel)
или
DDETerminate Channel
где
Channel (Тип- Long). Номер канала, установленный с помощью метода DDEInitiate.
Пример1.Открывает канал связи с разделом Engine приложения MATLAB.
lngChannel = Application.DDEInitiate(App:="MATLAB", Topic:="Engine")
Application.DDETerminate lngChannel
Разместим на рабочем листе два элемента управления типа кнопка , перейдем в редактор Microsoft Visual Basic (Меню Сервис->Макрос->Редактор Visual Basic) и введем в
подпрораммы обработки событий следующий код на языке Visual Basic:
Код программы с подробными коментариями:
Rem Объявление глобальных переменных
Dim lngChannel2 As Long
Rem Подпрограмма обработки прерывания от кнопки 1
Private Sub CommandButton1_Click()
Rem Установление DDE канала связи с разделом листа Excel
lngChannel2 = Application.DDEInitiate(App:="MATLAB", Topic:="Engine")
If lngChannel2 <> 0 Then
Rem Если канал установлен
Rem Посылаем команды для умножения 2х числовых матриц в MATLAB на выполнение
Application.DDEExecute lngChannel2, "x=[1.2,2,3;4,5,6;7,8,9]"
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.