eval命令作为与Matlab一起使用的字符串

sha*_*r_m 3 string matlab eval

在Matlab中有一种方法可以将命令存储为字符串供以后使用吗?
例如,如果我有

x = 1:10;
plot(x, x);
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式str = 'plot(1:10, 1:10)'自动存储第二行,所以稍后我可以再次使用该命令eval(str)吗?帮助我完成这项任务的任何有用功能?

ps我知道可以存储该行str='plot(x,x)',但这不够好,因为它取决于工作空间变量x的即时值,它可以随时间变化.

nim*_*odm 6

您可以尝试使用闭包.在你的情况下,这将是这样的:

x=1:10;
f = @()plot(x, x);
Run Code Online (Sandbox Code Playgroud)

现在f拥有执行绘图所需的一切(包括x中的信息),您可以将其应用于执行绘图功能:

f()
Run Code Online (Sandbox Code Playgroud)

  • 哈哈!看起来像@gnovice大约在同一时间读取他的早晨StackOverflow. (2认同)