Can't configure predifined char arguments in a function
1 次查看(过去 30 天)
显示 更早的评论
I'm trying to create a function to work with structures, specifically to write information in any field.
I know I could use "structure.fieldA.fielB = data" but for the final application I'm looking for a cleaner code. That's why I'm doing this function.
Its declaration and arguments definition is the next:
function [s] = add2element(s, element, field, data)
arguments
s
element {mustBeInteger} = 1
field {mustBeText} = 'Points'
data {mustBeFinite} = 0
end
% Here next is the body of the function, not important right now
end
But when I try to call the function the following error raises:
>> example_s = add2element(example_s, 1, 'Points', 5)
Unrecognized function or variable 'mustBeText'.
Error in add2element
I've written the arguments block by looking at the Argument Validation Functions page and I don't understand why I get this error. The following are the tests I've done with no results:
- I've tried with both validations 'mustBeText' and 'mustBeTextScalar'.
- The field 'Points' was written in a variable field_name = 'Points'
0 个评论
采纳的回答
Ameer Hamza
2020-12-11
编辑:Ameer Hamza
2020-12-11
mustBeText and mustBeTextScalar were both introduced in R2020b; you cannot use them in R2020a. MATLAB does not provide any validation function for text validation in R2020a: https://www.mathworks.com/help/releases/R2020a/matlab/matlab_prog/argument-validation-functions.html. You can define your own validation function
function myValidationFun(x)
if ~ischar(x)
error('Not a char.');
end
end
place it on MATLAB's path and then in your argument list, specify this validation function for field like this
field {myValidationFun} = 'Points'
更多回答(0 个)
另请参阅
类别
在 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!