Property value validation with values from file

I have a matlab class called Seq with the property seqName. Now I want to verify, if a value assigned to that property is a member of strings which are stored in a .csv file.
I can use mustBeMember
PropName {mustBeMember(seqName,{'movieNameA','movieNameB','movieNameC'})} = 'defaultMovieName'
But how can I replace {'movieNameA','movieNameB','movieNameC'} with an imported .csv file which contains the allowed values?
Thanks in advance
Dennis

1 commentaire

Marcel-Dennis Boerzel
Marcel-Dennis Boerzel le 16 Avr 2022
Modifié(e) : Marcel-Dennis Boerzel le 16 Avr 2022
One additionally information. For me it is not important that it is a .csv-file. Any other importable filetype is ok for me as well.

Connectez-vous pour commenter.

 Réponse acceptée

The census.mat file contains two variables, cdate and pop.
whos -file census.mat
Name Size Bytes Class Attributes cdate 21x1 168 double pop 21x1 168 double
Let's write a function that will retrieve the data from one of those variables specified by the user.
y = example1698110('cdate')
y = 21×1
1790 1800 1810 1820 1830 1840 1850 1860 1870 1880
y = example1698110('pop')
y = 21×1
3.9000 5.3000 7.2000 9.6000 12.9000 17.1000 23.1000 31.4000 38.6000 50.2000
y = example1698110('notInCensus')
Error using solution>example1698110
Invalid argument at position 1. Value must be a member of this set:
'cdate'
'pop'
function y = example1698110(name)
arguments
% Use a local validator that uses mustBeMember as part of its operation
name string {validateNameInput(name)}
end
y = load('census.mat', name).(name);
end
function validateNameInput(name)
% Use whatever means necessary to assemble the list of acceptable strings
varnames = {whos('-file','census.mat').name};
mustBeMember(name, varnames)
end

Plus de réponses (0)

Catégories

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by