Property value validation with values from file

1 visualizzazione (ultimi 30 giorni)
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 Commento
Marcel-Dennis Boerzel
Marcel-Dennis Boerzel il 16 Apr 2022
Modificato: Marcel-Dennis Boerzel il 16 Apr 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.

Accedi per commentare.

Risposta accettata

Steven Lord
Steven Lord il 16 Apr 2022
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

Più risposte (0)

Categorie

Scopri di più su Argument Definitions in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by