我想矢量化以下循环:
for I=1:N
x = f(x);
end
其中 f 是自定义函数,即匿名函数。是否有像 arrayfun 这样的命令允许这样做?
编辑:向量化在这里可能是错误的词,应该使用优化。
我想矢量化以下循环:
for I=1:N
x = f(x);
end
其中 f 是自定义函数,即匿名函数。是否有像 arrayfun 这样的命令允许这样做?
编辑:向量化在这里可能是错误的词,应该使用优化。
我不检查代码,但也许:
x = arrayfun(@(y) f(x), 1:N);
arrayfun
您可以将传递的向量的每个元素作为参数。在上面的示例中,y
指的是 vector 的每个元素1:N
,它也表示for
您作为示例发布的循环的索引。在您的for
循环中,您不使用索引,因此您可以在 中执行相同的操作arrayfun
并在向量上执行您想要的操作:f(x)
。最后,您可以将输出分配给x
. 可能,通过您检索长度arrayfun
输出的方式以及迭代中每个结果的结果。使用循环,您将在每次迭代中覆盖.x
N
f(x)
for
x
希望你对我的英语有所帮助和抱歉。