1

Mathematica からの結果のエクスポートに関して 1 つの問題があります。2 つの行列 A と B は、特別な形式でエクスポートする必要があります。これら 2 つのコードは、Maple からエクスポートされたデータのリストを作成します。ワードパッドで開いたエクスポートファイルが列のように見えることが重要です(添付ファイル)。

すでに動作していることを確認した場合は、回答を書いてください。ありがとうございます! ファイルダウンと比較して回答を確認できます。

コードはこちら

Maple のコードとエクスポートされたファイルを含む行列 A と B

http://www.2shared.com/file/49wW8Z0-/EXAMPLE_EXPORT_MAPLE_FINAL.html

また、誰でも簡単に見られるようにここで紹介します

コード 1)

A := Matrix(2, 2, {(1, 1) = (455200000000/6133413)*w(1), (1, 2) = -(1792000000000/116534847)*w(1), (2, 1) = (455200000000/6133413)*w(2), (2, 2) = -(1792000000000/116534847)*w(2)})


precision := double: writeto(`Aexport.for`):
for i from 1 to 2 do:for j from 1 to 2 do:
if  A[i,j]<>0  then codegen[fortran]([A00[i,j]=A[i,j]],optimized):
fi:od:od:writeto(terminal):

コード 2)

B := Matrix(2, 2, {(1, 1) = 6436781.609, (1, 2) = 0, (2, 1) = 0, (2, 2) = 3862068.966})

  writeto(Bexport);
    for i to 2 do 
    for j to 2 do 
     printf("%016.15E\n", B[i, j]) 
      end do:
        end do:
         writeto(terminal)
4

2 に答える 2

1

これは、行列Bに必要なことを実行すると思います。

b = {{6436781.609, 0}, {0, 3862068.966}}

bformatted = 
  NumberForm[
    Flatten@b,
    {16, 15}, 
    NumberFormat -> (Row[{#, "E+", StringTake["00" <> #3, -2]}] &)
  ];

bstring = 
  StringReplace[
    ToString@bformatted,
    {"{"|"}"|" " -> "", "," -> "\n"}
  ];

WriteString["Bexport.dat", bstring, "\n"]

Close["Bexport.dat"]
于 2011-12-02T19:29:37.153 に答える
1

これは (B) 部分のみの翻訳です。

matrix = {{6436781.609, 0}, {0, 3862068.966}}

Export["Bexport", Map[FortranForm, N@Flatten[matrix]], "Table"]

テストして、うまくいくかどうか教えてください。

Maple バージョンとの違い: はE小文字で書かれ、出力される桁数は固定されていません (ただし、ご覧のとおり、すべての有効桁数が保持されます)。これらの違いは、アプリケーションで問題を引き起こしますか?

于 2011-12-02T10:19:32.037 に答える