我有一个包含人口数据的矩阵和一个矢量,可以参考每种类型的数据示例,年龄,国家,性别,身高,种族。 我需要在代码的一部分中使用这些字符串作为char 1x1。我想要建立一些关系
variables = {'age', 'a';
'gender', 'b';
'country', 'c';
'height', 'd';
'ethnicity', 'e'};
我想要的是,无论何时我使用leters,'a','b','c','d'或'e',代码都知道我想使用'age','gender' ,'country','height'或'ehtnicity'分别。
我怎么能这样做? 谢谢!
答案 0 :(得分:4)
您有两种选择:
更常见的方法是使用结构:
codes.a = 'age';
codes.b = 'gender';
...
因此,只要您需要代码,只需获取等效结构成员的值:
character_you_typed = 'a';
getfield(codes, character_you_typed)
或(基于@Amro的评论):
codes.(character_you_typed)
此方法不会将您限制为单字符键。另一种方法是使用最近添加的Map容器和'char'键:
codes = containers.Map('KeyType', 'char');
codes('a') = 'age';
codes('b') = 'gender';
...
然后:
character_you_typed = 'a';
codes(character_you_typed)
第二种方法看起来好多了,但不幸的是,你只能使用一个字符来锁定密钥。