"Input parser" vs. new "arguments" definition
33 次查看(过去 30 天)
显示 更早的评论
R2019b introduced the new "arguments" section for function argument checking and parsing.
I hahe written some functions using the "old" input parser class. Are there any advantages to switch to the new syntax?
Is it worth to update my functions to the new syntax? (sure, I know, "never change a running system")
regards, Stefan
1 个评论
chicken vector
2023-4-7
Hi Stefan, this is a question of great interest.
Have you figured out an answer yet? I am implementing a library and I can't choose what to use.
回答(1 个)
埃博拉酱
2023-4-7
编辑:埃博拉酱
2023-4-7
The biggest advantage of the arguments block is readability, but it is far less flexible than varargin. People who are not familiar with your code can quickly understand your parameter requirements through the arguments block.
Another potential advantage may be ease of compiler optimization. Overly flexible varargin is difficult to optimize for performance.
4 个评论
Stephen23
2023-6-26
编辑:Stephen23
2023-6-26
@chicken vector: you can always use a comma-separated list, which works on every MATLAB version**:
options = {"parameters1", 1, "parameter2", 'foo', "parameter3", true}
myfunction(requiredInput, options{:})
** with cell arrays. AFAIK comma-separated lists were introduced at the same time.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Argument Definitions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!