Matlab代码优化

时间:2017-11-30 19:18:56

标签: matlab for-loop

我想在Matlab2017中优化我的计划。 我想在不使用n-times的情况下重复一些函数for-loop。 例如,在以下代码中我需要删除。

for i=1:5
    N(i)=diff(f(x),x,i);
end

请帮我优化一下这段代码?  因为我的程序中需要很多这样的代码。

1 个答案:

答案 0 :(得分:0)

要摆脱for循环,可以使用arrayfun

arrayfun(@(i) diff(f(x), i), [1:5]', 'UniformOutput', false)

两个评论:

  • 使用diff的方式肯定会引发错误。我不明白为什么你使用三个输入。现在,第三个输入指的是您想要应用导数的维度。见help diff
  • 由于函数diff(f(x), i)的输出大小不是标量,因此您需要将UniformOutput选项设置为false