gpt4 book ai didi

matlab - 如何在匿名函数中使用变量?

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:28 25 4
gpt4 key购买 nike

我试图定义:

f = @(x) d*x

其中 d 是之前定义的变量,比如 d = 2。我的目标是让它返回:

@(x) 2*x

但是,MATLAB 返回:

@(x) d*x

我这样做的原因是在 for 循环中定义一系列函数句柄,例如

q = cell(n, 1);
for i = 1:n
q{i} = @(y) sum(y(1:i));
end

是否可以定义一个使用匿名函数定义中的索引的函数句柄数组?

最佳答案

它是正确的。当您定义 f = @(x) d*x 时,matlab 将在本地范围内查找 d。由于 d 在函数定义时为 2,因此您的函数 f 将有效地为 2*x。即使您稍后更改 d 的值,例如d=10,'f' 函数仍将使用 2

这是一个例子:

d = 2;

f = @(x) d*x;

f(2) % gives 4;

d = 10;

f(2) % gives 4 again. matlab will 'remember' that d was 2 at the time of
% f function definition

关于matlab - 如何在匿名函数中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22215571/

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