a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c;
即使从工作区中删除parabola
,a
,b
,也可以调用 c
。解释是:
因为a,b和c在您创建抛物线时可用,所以函数句柄包含这些值。即使清除变量,值仍会保留在函数句柄中:
在创建parabola
之类的匿名函数之后,我如何在以后检索或查看存储在其中的变量?
答案 0 :(得分:2)
您可以使用functions
函数获取有关匿名函数的信息,包括定义这些变量的内部工作区。
a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c;
clear a b c
F = functions(parabola);
variables = F.workspace{1};
%// variables =
%//
%// a: 1.3
%// b: 0.2
%// c: 30
工作空间包含struct
,其中包含函数句柄工作空间中包含的每个变量的字段。