处理工作空间的数据

使用GetWokspace函数和PutWorkspace函数可以从工作空间获取数据或者将数据放到工作空间上。[大谦MATLAB,dqmatlab点com]

1.PutWorkspaceData函数

使用该函数将数据保存到服务器工作空间中,调用格式为:

MATLAB用作客户程序时:

h.PutWorkspaceData('varname', 'workspace', data)

PutWorkspaceData(h, 'varname', 'workspace', data)

invoke(h, 'PutWorkspaceData', 'varname', 'workspace', data)

VBA用作客户程序时:

void PutWorkspaceData([in] BSTR name, [in] BSTR workspace,[in] BSTR data);

PutWorkspaceData函数将句柄h表示的服务器的工作空间workspace中的数据保存到变量varname中。workspace参数可以是base或global。

2.GetWorkspaceData函数

该函数从服务器工作空间获取数据,调用格式为:

如果MATLAB为客户程序:

D=h.GetWorkspaceData('varname', 'workspace')

D=GetWorkspaceData(h, 'varname', 'workspace')

D=invoke(h,'GetWokspaceData', 'varname', 'workspace')

如果VBA作为客户程序:

void GetWorkspaceData([in] BSTR varname, [in] BSTR workspace,

[out] BSTR retdata);

GetWorkspaceData函数获取保存在变量varname中的数据,该变量位于句柄h表示的服务器的工作空间workspace中。返回值返回到输出参数D中。workspace参数可以是base或global。

下面的例子将一个元胞数组赋给服务器基本工作空间中的变量C1,然后用GetWokspaceData函数读回。

MATLAB作为客户程序时,使用下面的命令行:

code.matlab
>> h=actxserver('matlab.application');
>> h.PutWorkspaceData('C1', 'base', {'Hello', magic(3),pi});
>> C2=h.GetWorkspaceData('C1', 'base')
C2=
'Hello'    [3x3 double]    [3.1416]

VBA作为客户程序时,使用类似下面的语句行:

code.excel vba
Dim Matlab As Object
Dim C2 As Variant
Set Matlab=text-blue-400">CreateObject("matlab.text-blue-400">application")
Result=Matlab.Execute("C1={magic(3),'Hello',pi};")
Call Matlab.GetWorkspaceData("C1", "base", C2)
text-blue-400">MsgBox C2(0, 0)(1, 2)  '第1个元素是矩阵,继续索引第2行第3列的矩阵元素
text-blue-400">MsgBox C2(0, 1)  '第2个元素是字符串"Hello"