使用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作为客户程序时,使用下面的命令行:
>> h=actxserver('matlab.application');
>> h.PutWorkspaceData('C1', 'base', {'Hello', magic(3),pi});
>> C2=h.GetWorkspaceData('C1', 'base')
C2=
'Hello' [3x3 double] [3.1416]
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"