query argument block options

4 次查看(过去 30 天)
Steve Van Hooser
Steve Van Hooser 2025-3-26
编辑: Sameer 2025-4-9
Is there a way to automatically query the optional arguments of an argument block?
For example, something like:
myStruct = argumentInfo('myfunc.m');
(and myStruct has fields 'name','type','size','validationCode','defaultValue')
  1 个评论
Walter Roberson
Walter Roberson 2025-3-26
I do not think any such thing existed.
If it did exist, it would need to also accept a function handle instead of a file name, to deal with the fact that there can be multiple functions in a file. Or I suppose it could return a struct array of struct array, with the outer layer being information about the function name.

请先登录,再进行评论。

回答(1 个)

Sameer
Sameer 2025-4-9
编辑:Sameer 2025-4-9
You can use "inputParser" class to define and query optional arguments of a function
Here's an example:
function Ex_Func(varargin)
p = inputParser;
% Define optional arguments with default values and validation functions
addOptional(p, 'name', 'defaultName', @ischar);
addOptional(p, 'type', 'defaultType', @ischar);
addOptional(p, 'size', [1, 1], @isnumeric);
addOptional(p, 'validationCode', 'defaultValidation', @ischar);
addOptional(p, 'defaultValue', 'defaultValue', @ischar);
% Parse the input arguments
parse(p, varargin{:});
% Retrieve the parsed arguments
myStruct = struct();
myStruct.name = p.Results.name;
myStruct.type = p.Results.type;
myStruct.size = p.Results.size;
myStruct.validationCode = p.Results.validationCode;
myStruct.defaultValue = p.Results.defaultValue;
disp(myStruct);
end
Hope this helps!

类别

Help CenterFile Exchange 中查找有关 Argument Definitions 的更多信息

产品


版本

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by