从匿名函数

时间:2016-05-02 02:31:21

标签: matlab

例如,taken from Matlab

a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c;
即使从工作区中删除parabolaab,也可以调用

c。解释是:

  

因为a,b和c在您创建抛物线时可用,所以函数句柄包含这些值。即使清除变量,值仍会保留在函数句柄中:

在创建parabola之类的匿名函数之后,我如何在以后检索或查看存储在其中的变量?

1 个答案:

答案 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,其中包含函数句柄工作空间中包含的每个变量的字段。