Понимание вывода with_stdout
Согласно документации по максимумам, 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 ответ
Видимо 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
обязательно будет по умолчанию.