1

我正在尝试自己学习 MATLAB。在我使用的书中有一个脚本示例,涉及eval如下:

 t = [0:0.1:2]
 for k = 1:10
    outputfile = ['result',int2str(k)];
    theta = k*pi*t;
    x = sin(theta);
    y = cos(theta);
    z = x.*y.^2;
    eval(['save ',outputfile,' x y z'])
end

我的问题是 - 为什么有必要' x y z'在命令末尾包含eval?我尝试在不包含此脚本的情况下运行此脚本,并且据我所知,该脚本的行为看起来完全相同(至少我找不到任何区别)。

如果有人可以向我解释为什么包含它,我将不胜感激!

4

3 回答 3

4

'x y zsave函数/命令的参数。他们正在告诉save哪些变量要保存到文件outputfile中。有关该命令的更多信息,请参阅 MATLAB文档。save

注意:您可以根据 MA​​TLAB 文档将该行替换为对该save函数的调用。例如,您可以只使用

save(outputfile, 'x', 'y', 'z')
于 2012-04-14T20:48:42.237 回答
2

如果没有x y z,您的输出文件(.mat 文件)将包含工作区中的所有变量(即x y z theta t k ...)。如果您只想存储x y z,则在调用时指定它save

于 2012-04-14T20:47:33.893 回答
0

使用函数'eval'的原因是,通过使用 eval,您可以一次保存一个名为 result_1 result_2... 的列表结果。即,将数据保存到递增编号的 ASCII 文件中。您可以在此网站上找到更多详细信息:

https://www3.nd.edu/~dtl/cheg258/notes/doc/tec1.3.html

注意: eval(['save ',outputfile,' xy z']) 在字母 x 之前有一个空格。

于 2015-11-17T07:36:46.380 回答