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