inputParser with only a value, not a name-value pair
17 次查看(过去 30 天)
显示 更早的评论
Is it possible to use inputParser with only a value, not a name-value pair. So that when you send a function a specific argument, the argument is automatically set to a variable, without a variable name needed to be given in the function call?
Instead of
a = findArea(13,'shape','square');
You could just send findArea 'square', like:
a = findArea(13,'square');
And within the function, it would recognize that square can only be a shape and set shape's value to 'square'.
0 个评论
回答(1 个)
Fangjun Jiang
2018-7-13
Yes. You would make that a required argument, not an optional argument.
function a = findArea(width,Shape,varargin)
....
addRequired(p,'shape',defaultShape,... @(x) any(validatestring(x,expectedShapes)));
2 个评论
Fangjun Jiang
2018-7-18
should be
addRequired(p,'shape', @(x) any(validatestring(x,expectedShapes)));
另请参阅
类别
在 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!