Понимание вывода with_stdout - PullRequest
0 голосов
/ 17 апреля 2019

Согласно документации по максимумам, with_stdout - это функция, которая оценивает некоторые выражения и записывает выходные данные в соответствии с этими выражениями в файл f.Я попытался использовать эту функцию на простом примере:

with_stdout ("data.txt", for x:0 thru 10 do print (x, x^2, x^3))$

Но вывод выглядит следующим образом:

<mth><n>0</n><st> </st><n>0</n><st> </st><n>0</n><st> </st></mth><mth><n>1</n><st> </st><n>1</n><st> </st><n>1</n><st> </st></mth><mth><n>2</n><st> </st><n>4</n><st> </st><n>8</n><st> </st></mth><mth><n>3</n><st> </st><n>9</n><st> </st><n>27</n><st> </st></mth><mth><n>4</n><st> </st><n>16</n><st> </st><n>64</n><st> </st></mth><mth><n>5</n><st> </st><n>25</n><st> </st><n>125</n><st> </st></mth><mth><n>6</n><st> </st><n>36</n><st> </st><n>216</n><st> </st></mth><mth><n>7</n><st> </st><n>49</n><st> </st><n>343</n><st> </st></mth><mth><n>8</n><st> </st><n>64</n><st> </st><n>512</n><st> </st></mth><mth><n>9</n><st> </st><n>81</n><st> </st><n>729</n><st> </st></mth><mth><n>10</n><st> </st><n>100</n><st> </st><n>1000</n><st> </st></mth>

вместо записи таблицы с тремя столбцами, как это должно быть.

Я даже не понимаю первый вывод.Что я здесь недопонимаю или упускаю?

-

Кажется, есть ошибка, вызванная Wxmaxima, я не знаю, работает ли она на максимумах.

Привет.

1 Ответ

1 голос
/ 17 апреля 2019

Очевидно, wxMaxima переопределяет функцию print по умолчанию для генерации XML-тегов (например, <foo> ... </foo>), которые wxMaxima использует для указания способа отображения содержимого.Я не знаю, можно ли напрямую вызвать функцию по умолчанию print в wxMaxima;может быть, может и нет.

Я вижу несколько вариантов.(1) Вместо этого вызовите grind, который выводит так называемый одномерный вывод.В любом случае это, вероятно, больше подходит для вывода файла.

(2) Позвоните printf, например printf(true, "~a, ~a, ~a~%", x, x^2, x^3).printf распознает множество параметров вывода, как описано в ? printf.Возможно, printf вызовы также перехватываются wxMaxima, я не пробовал.

(3) Используйте обычный текст, консольный интерфейс Maxima, тогда print обязательно будет значением по умолчанию.

...