我想在Matlab2017
中优化我的计划。
我想在不使用n-times
的情况下重复一些函数for-loop
。
例如,在以下代码中我需要删除。
for i=1:5
N(i)=diff(f(x),x,i);
end
请帮我优化一下这段代码? 因为我的程序中需要很多这样的代码。
答案 0 :(得分:0)
要摆脱for
循环,可以使用arrayfun
:
arrayfun(@(i) diff(f(x), i), [1:5]', 'UniformOutput', false)
两个评论:
diff
的方式肯定会引发错误。我不明白为什么你使用三个输入。现在,第三个输入指的是您想要应用导数的维度。见help diff
。 diff(f(x), i)
的输出大小不是标量,因此您需要将UniformOutput
选项设置为false
。