1

我有一个包含人口数据的矩阵和一个向量,该向量引用了每种类型的数据示例、年龄、国家、性别、身高、种族。我需要在部分代码中将这些字符串用作 char 1x1。我想建立一些关系

variables =  {'age', 'a';
           'gender', 'b';
          'country', 'c';
           'height', 'd';
        'ethnicity', 'e'};

我希望任何时候我使用字母“a”、“b”、“c”、“d”或“e”时,代码都知道我想使用“年龄”、“性别”、“国家” ','高度'或'ehtnicity',分别。

我怎么能这样做?谢谢!

4

1 回答 1

4

你有两个选择:

更常见的方法是使用结构:

codes.a = 'age';
codes.b = 'gender';
...

所以任何时候你需要一个代码,只需获取等效结构成员的值:

character_you_typed = 'a';
getfield(codes, character_you_typed)

或(基于@Amro 下面的评论):

codes.(character_you_typed)

此方法不限制您使用单字符键。另一种方法是使用最近添加的带有 'char' 键的 Map 容器:

codes = containers.Map('KeyType', 'char');
codes('a') = 'age';
codes('b') = 'gender';
...

然后:

character_you_typed = 'a';
codes(character_you_typed) 

第二种方法看起来要好得多,但不幸的是,您只能使用单个字符作为键。

于 2013-05-23T13:26:51.527 回答