我在mathematica中使用以下代码来调用matlab
In[1]:= Needs["NETLink`"]
matlab = CreateCOMObject["matlab.application"]
In[5]:= matlab@Execute["a=[1 2;3 4]"]
我想从mathematica获取matlab工作空间变量“a”并将其转换为mathematica矩阵。 我怎么能用netlink做到这一点?
答案 0 :(得分:3)
我不知道你是如何与MATLAB联系的......你的ProgID
对我来说不起作用,我也不确定它是否正确。一种更简单,更可靠的方法是在MATLAB中创建您想要的任何内容,然后将其保存为.mat
文件并将其导入Mathematica。这是一个小例子:
a=magic(4)
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
save('file','a');
a = Transpose@Import["file.mat", {"HDF5", "Datasets", "a"}];
答案 1 :(得分:3)
假设您获得表格的输出
out = "
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
";
您可以使用ImportString
命令将其转换为 Mathematica 的格式:
matrix = ImportString[out, "Table", "IgnoreEmptyLines" -> True,
"HeaderLines" -> 1];
matrix // TableForm