gpt4 book ai didi

matlab - 是否可以访问Matlab中函数句柄内的变量?

转载 作者:行者123 更新时间:2023-12-02 10:02:23 27 4
gpt4 key购买 nike

例如说我定义:

c=3;
f = @(x) x + c;

可以吗

 f.c

或者基本上可以访问函数句柄内的变量?

我知道我可以在 Matlab 中创建对象和结构,但问题是我有一个包含一堆函数的 .mat 文件,我想查看它们正在使用的变量。在这个特定的场景中,我试图避免只通过访问 matlab 中的变量来重新编码我的东西,但在我没有重新编码的选项的情况下,如果有一种方法来访问定义函数句柄的变量/字段。我的意思是,当我调用 f(3) 时,它返回 6 所以它显然知道某个地方的 c ,那么我如何访问它c

最佳答案

这是可能的,使用函数functions 。调用 F =functions(f) 返回一个结构体 F,其中包含有关句柄 f 的函数的信息。当 fanonymous function 的句柄时,就像您的情况一样,F 的字段之一是 workspace,其中包含有关匿名函数所需变量的信息:

>> c = 3;
>> f = @(x) x + c;
>> F = functions(f)
F =
function: '@(x)x+c'
type: 'anonymous'
file: ''
workspace: {[1x1 struct]}
within_file_path: '__base_function'
>> F.workspace{1}.c
ans =
3

关于matlab - 是否可以访问Matlab中函数句柄内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43531469/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com