0

在我在这里提出问题之前,我只想让大家知道我正在使用 Maple 7(因为可能新版本的 Maple 已经解决了这个问题)。我对 maple 的一般问题是,如果我加载工作表,我需要重新执行所有内容(至少这是我学会在 maple 中做事的方式)才能继续工作。“问题”是我的一些中间符号计算可能是时间密集型的,我宁愿将结果方程保存在工作表中,这样如果我加载它,那么结果已经存在并且我不需要重做我的符号计算。我在 maple 7 中找到的一种方法是使用 save 命令,例如:

save var1, var2, "temp.m"

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

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

过程 f1out;在它的最后一行有(并且out是在函数内计算的向量或变量,我没有;最后因为我希望 f1 返回这个)。print(v);当我在加载变量 v 后编写时,我只得到如下内容:

[out, out, out, out]

但是如果我print(v)在原始工作表中(在执行了整个工作表之后)我得到了正确的向量。所以我在这里很困惑,我想也许有人会知道发生了什么。这只发生在向量上。如果我使用变量执行此操作,我不会遇到此问题。所以目前我正在考虑一个一个地保存向量的条目,但这既乏味又肮脏。有人有更好的想法吗?

何塞

4

2 回答 2

0

“out”的问题是分配给表或过程的名称未被评估。在返回“out”的过程中,您应该改为返回“eval(out,1)”。就像现在一样,该过程正在返回名称“out”,而该名称又包含该表。您希望它直接返回表格。

于 2013-09-03T06:56:14.993 回答
0

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

于 2013-09-02T11:39:01.817 回答