mathematica和matlab与NetLink的交互以及它们之间的数据交换

问题描述

|| 我在mathematica中使用了以下代码来调用Matlab
In[1]:= Needs[\"NETLink`\"]
matlab = CreateCOMObject[\"matlab.application\"]
In[5]:= matlab@Execute[\"a=[1 2;3 4]\"]
我想从mathematica获取matlab工作区变量\“ a \”并将其转换为mathematica矩阵。 如何使用Netlink做到这一点?     

解决方法

我不知道您如何与MATLAB连接...您的on1ѭ在我的计算机上不起作用,我不确定这是否正确。一种更简单,更可靠的方法是在MATLAB中创建所需的任何内容,然后将其保存为
.mat
文件并将其导入Mathematica。这是一个小例子: MATLAB:
a=magic(4)

a =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

save(\'file\',\'a\');
Mathematica:
a = Transpose@Import[\"file.mat\",{\"HDF5\",\"Datasets\",\"a\"}];
    ,假设您获得表格的输出
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
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...