根据maxima的文档,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触发的错误,我不知道它是否在最大值上。
问候。
显然wxMaxima会覆盖默认的print
函数来生成XML标签(像<foo>
... </foo>
这样的东西),wxMaxima用它来表示东西的显示方式。我不知道是否可以在wxMaxima中直接调用默认的print
函数;也许,也许不是。
我可以看到几个选项。 (1)改为调用grind
,输出所谓的1维输出。无论如何,这可能更适合文件输出。
(2)致电printf
,例如printf(true, "~a, ~a, ~a~%", x, x^2, x^3)
。 printf
认识到许多输出选项,如? printf
所述。可能printf
调用也被wxMaxima截获,我还没有尝试过。
(3)使用纯文本,控制台Maxima界面,然后print
肯定是默认的。