【问题标题】:Retrieve saved variable values from anonymous function从匿名函数中检索保存的变量值
【发布时间】:2016-05-02 02:31:21
【问题描述】:

例如taken from Matlab:

a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c;

即使abc 从工作区中删除,也可以调用parabola。解释是:

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

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以使用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,其中包含函数句柄工作区中包含的每个变量的字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 2011-08-20
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多