0

我想矢量化以下循环:

for I=1:N
  x = f(x);
end

其中 f 是自定义函数,即匿名函数。是否有像 arrayfun 这样的命令允许这样做?

编辑:向量化在这里可能是错误的词,应该使用优化。

4

1 回答 1

0

我不检查代码,但也许:

x = arrayfun(@(y) f(x), 1:N);

arrayfun您可以将传递的向量的每个元素作为参数。在上面的示例中,y指的是 vector 的每个元素1:N,它也表示for您作为示例发布的循环的索引。在您的for循环中,您不使用索引,因此您可以在 中执行相同的操作arrayfun并在向量上执行您想要的操作:f(x)。最后,您可以将输出分配给x. 可能,通过您检索长度arrayfun输出的方式以及迭代中每个结果的结果。使用循环,您将在每次迭代中覆盖.xNf(x)forx

希望你对我的英语有所帮助和抱歉。

于 2013-02-28T10:24:51.290 回答