Property value validation with values from file

1 次查看(过去 30 天)
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 个评论
Marcel-Dennis Boerzel
编辑:Marcel-Dennis Boerzel 2022-4-16
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.

请先登录,再进行评论。

采纳的回答

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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Workspace Variables and MAT-Files 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by