matlab 匿名函数保存,matlab – 匿名函数存储了哪些额外数据?

我最近了解到匿名函数可以携带大量未使用的数据,即使这些数据是在实例化匿名函数之后创建的.以下示例与FUNCTIONS命令一起说明了这一点,

function fun=test %place in an mfile

a=1;

b=2;

c=3;

fun=@(x)x+b+a;

a=7;

b=rand(1000);

c=5;

q=3;

r=4;

end

现在,回到基础工作区,当我将functions()命令应用于’fun’时,我明白了

>> fun=test; s=functions(fun); s.workspace{:}

ans =

b: 2

a: 1

ans =

fun: @(x)x+b+a

a: 1

b: [1000x1000 double]

c: 3

我想了解(如果可能的话,还有官方文档)匿名函数用来决定携带哪些数据的规则.上面似乎表明s.workspace {1}将始终包含匿名函数实际使用的外部变量及其值.与此同时,s.workspace {2}似乎包含了在定义fun之前进入范围的变量的更新.我是否正确这些是规则?但是,如果是这样,那么为什么s.workspace {2}包含对b的更新,而不是a和c?

这些事情看起来很重要,因为很明显,我最终会携带大量无意识的内存,这些内存是在创建匿名函数后分配的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值