Maple 7和部分保存

时间:2013-09-02 07:27:53

标签: maple

在我在这里提出问题之前,我只是希望每个人都知道我正在使用Maple 7(因为Maple的新版本可能已经解决了这个问题)。我与枫的一般问题是,如果我加载一个工作表,我需要重新执行所有事情(至少这是我学会用枫木做事的方式),以便继续处理我的工作。 “问题”是我的一些中间符号计算可能是时间密集的,我宁愿在工作表中保存结果方程,这样如果我加载它,那么结果已经存在,我不需要重做我的符号计算。我在maple 7中找到的一种方法是使用save命令,如:

save var1, var2, "temp.m"

不幸的是,Maple 7不支持保存所有变量的save temp.m。在这种意义上,枫木工作表并不完全像matlab(因为一旦你加载了一个matlab工作表,你就可以在你的工作表中得到所有的计算变量,你可以从那里开始工作)。也许我的方式太原始了(通过使用“save”命令来保存计算结果,然后每次加载它们而不是执行整个工作表),所以如果有人有一个更清晰的方法来解决这个问题,我全都耳朵:)那里这也是我对maple 7的另一个问题。如果我使用hte save命令保存矢量v,则不会始终保存矢量值。如果我从另一个工作表加载“变量文件”v [1]不再存在。 v [1],v [2] ..等是通过一个程序说f1 ..所以我做

v[1] := f1(..some parameters...)

过程f1在其最后一行中有out;(并且out是在函数内计算的向量或变量,我有;最后因为我想要f1返回它)。当我在加载变量v后写print(v);时,我只得到这样的东西:

[out, out, out, out]

但如果我在原始工作表中print(v)(在执行完整个工作表之后),我会得到正确的向量。所以我在这里很困惑,我想也许有人会知道发生了什么。这只发生在矢量上。如果我用变量这样做,我不会遇到这个问题。所以目前我正在考虑逐个保存向量的条目,但这很繁琐而且很脏。谁有更明智的想法?

2 个答案:

答案 0 :(得分:0)

好吧..我想我找到了解决我的一个问题的方法!枫7程序有些不寻常。我的向量的值被引用到另一个变量(out),我推测这是因为我在我的过程中返回值(out变量被调出),所以maple将它引用到这个值。我重写了我的过程,以便我不显式返回值,但通过处理变量引用更改过程参数中的值。现在当我使用save命令时,我真的得到了保存的计算值。我不确定这个问题是否也出现在较新版本的Maple中。

答案 1 :(得分:0)

“out”的问题是分配了表或过程的名称保持不被评估。在返回“out”的过程中,您应该返回“eval(out,1)”。就像现在一样,程序返回名称“out”,后者又保存表格。您希望它直接返回表格。