Can't configure predifined char arguments in a function

2 views (last 30 days)
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)
element {mustBeInteger} = 1
field {mustBeText} = 'Points'
data {mustBeFinite} = 0
% Here next is the body of the function, not important right now
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'

Accepted Answer

Ameer Hamza
Ameer Hamza on 11 Dec 2020
Edited: Ameer Hamza on 11 Dec 2020
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: You can define your own validation function
function myValidationFun(x)
if ~ischar(x)
error('Not a char.');
place it on MATLAB's path and then in your argument list, specify this validation function for field like this
field {myValidationFun} = 'Points'

More Answers (0)




Community Treasure Hunt

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

Start Hunting!