Нужен короткий код Mathematica, такой же, как в Maple - PullRequest
1 голос
/ 02 декабря 2011

У меня одна проблема с результатами экспорта из Mathematica.Две матрицы A и B должны быть экспортированы в специальной форме.Эти два кода составляют список данных, экспортируемых из Maple.Важно, чтобы экспортированный файл, открытый с помощью wordpad, выглядел как столбец (Файл прикреплен).

Пожалуйста, просто, если вы уже проверили, что он работает, напишите мне ответ, спасибо!Вы можете проверить свой ответ, сравнивая файлы внизу.

Коды здесь

Матрицы A и B с кодом в Maple и экспортированный файл

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)

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Я полагаю, это то, что вы хотите для матрицы 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"]
1 голос
/ 02 декабря 2011

Это только перевод части (B):

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

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

Пожалуйста, проверьте его и дайте мне знать, работает ли он для вас.

Отличия от версии Maple:E записывается в нижнем регистре, а количество выводимых цифр не является фиксированным (но, как вы можете видеть, все значащие цифры сохраняются).Не вызовут ли эти различия проблемы в вашем приложении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...