matlabを呼び出すために数学で次のコードを使用しました
In[1]:= Needs["NETLink`"]
matlab = CreateCOMObject["matlab.application"]
In[5]:= matlab@Execute["a=[1 2;3 4]"]
matlabワークスペース変数"a"をmathematicaから取得し、それをmathematica行列に変換したいと思います。どうすればnetlinkでこれを行うことができますか?
matlabを呼び出すために数学で次のコードを使用しました
In[1]:= Needs["NETLink`"]
matlab = CreateCOMObject["matlab.application"]
In[5]:= matlab@Execute["a=[1 2;3 4]"]
matlabワークスペース変数"a"をmathematicaから取得し、それをmathematica行列に変換したいと思います。どうすればnetlinkでこれを行うことができますか?
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"}];
フォームの出力を取得すると仮定します
out = "
a =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
";
次のコマンドを使用して、これをMathematicaの形式に変換できます。ImportString
matrix = ImportString[out, "Table", "IgnoreEmptyLines" -> True,
"HeaderLines" -> 1];
matrix // TableForm