【发布时间】:2019-10-06 17:27:23
【问题描述】:
我正在寻找解决以下问题的方法:
- 创建一个包含
fun = @(x)(x*x)的脚本foo.m - 运行
foo。这将创建变量fun。 - 删除
foo.m - 尝试运行
fun(2)。
在最新版本的 MATLAB(我使用的是 R2019b)中,这会导致错误:
以前可访问的文件“foo.m”现在无法访问。
不知何故,匿名函数与定义它的文件相关联。
是否有可能以某种方式“分离”它,以便即使在文件被删除后它也能继续工作?
对于那些好奇我为什么需要它的人,它适用于 fixingMATLink,Mathematica/MATLAB 接口,适用于最新版本的 MATLAB。
【问题讨论】:
-
@CrisLuengo 这只是一个错字(现已修复)。我打电话给
fun。如果foo.m被删除,它就不起作用,即使 MATLAB 知道fun变量,甚至可以显示定义。 -
在命令行和脚本中将
fun定义为全局变量是否有效? -
@rahnema1 不。但它们不是默认全局的吗?
-
没有。我的意思是如果你使用
global关键字来声明变量。 -
@rahnema1 我明白你想尝试什么。它不会改变任何东西。它对你有用吗?
标签: matlab