0

matlabを呼び出すために数学で次のコードを使用しました

In[1]:= Needs["NETLink`"]
matlab = CreateCOMObject["matlab.application"]
In[5]:= matlab@Execute["a=[1 2;3 4]"]

matlabワークスペース変数"a"をmathematicaから取得し、それをmathematica行列に変換したいと思います。どうすればnetlinkでこれを行うことができますか?

4

2 に答える 2

3

MATLAB との接続方法がわかりませProgIDん... 私の環境では機能しません。それが正しいかどうかもわかりません。より簡単で信頼性の高い方法は、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');

マテマティカ:

a = Transpose@Import["file.mat", {"HDF5", "Datasets", "a"}];

ここに画像の説明を入力

于 2011-05-26T20:07:18.463 に答える
3

フォームの出力を取得すると仮定します

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
于 2011-05-26T20:55:57.547 に答える