array/cellfun vs. for loop

조회 수: 49 (최근 30일)
David Goldsmith
David Goldsmith 2012년 6월 28일
댓글: Rik 2018년 8월 20일
Are arrayfun and cellfun always faster than functionally equivalent for loops? If so, why? (E.g., is it a difference in the library functions they call for implementation?) Finally, is it possible to give a general "order function" by which they're faster (e.g., O(N), O(NlogN), etc.)?

채택된 답변

Walter Roberson
Walter Roberson 2012년 6월 28일
For loops are usually faster than arrayfun or cellfun, as the for loop does not need to invoke the function handle each time. The for loop also has opportunities for optimizations between statements that the arrayfun or cellfun would not have.
arrayfun() or cellfun() can be faster to write the code for, as they are a higher level concept. Not always, though: some of the twists one has to go through to create the behaviour as an anonymous function can be messy.
  댓글 수: 8
Walter Roberson
Walter Roberson 2018년 8월 20일
I do find the blog article at the link indicated.
Rik
Rik 2018년 8월 20일
Strange. Maybe it was offline temporarily, or my own connection had a hiccup. Anyway, here is a permalink for future reference.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by