0

根据 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 触发的错误,我不知道它是否也在最大值上。

问候。

4

1 回答 1

1

显然 wxMaxima 会覆盖默认print函数来生成 XML 标记(类似<foo>...的东西</foo>),wxMaxima 使用这些标记来指示内容的显示方式。不知道是否可以直接调用printwxMaxima中的默认函数;也许,也许不是。

我可以看到几个选项。(1)grind改为调用,输出所谓的一维输出。无论如何,这可能更适合文件输出。

(2) 呼叫printf,例如printf(true, "~a, ~a, ~a~%", x, x^2, x^3)printf识别许多输出选项,如? printf. 有可能printfwxMaxima也拦截了调用,我没试过。

(3) 使用纯文本,控制台千里马界面,那么print肯定是默认的。

于 2019-04-17T17:24:31.750 回答