我有一个向量(1,2,3,4)
,我希望用'AA'
标记1,用'AB'
标记2,用'CD'
标记3,用'Hello'
标记4,随你。它应该像向量('AA','AB','CD','Hello')
一样。有可能吗?
答案 0 :(得分:2)
MATLAB有Map
container type:
keySet = 1:4;
valSet = {'AA','AB','CD','Hello'};
map = containers.Map(keySet,valSet);
使用values
method获取一些请求的值:
>> vals = map.values(num2cell([3 2 1 4]))
vals =
'CD' 'AB' 'AA' 'Hello'
答案 1 :(得分:1)
容易愚蠢,使用cell array,例如:
v = {'AA','AB','CD','Hello'};
然后试试,
v{1}
等。 (注意大括号...... {})
编辑:这与以下内容平行:
v{1}='AA';
v{2}='AB'; ...
...
答案 2 :(得分:1)
您可能希望使用cellstr
数组来存储输出名称,并使用映射表将输入转换为输出。
% List of labels that correspond to the indexes of the array
labels = {'AA', 'AB', 'CD', 'Hello'};
% Input vector
v = [1 2 3 1 4 2];
% Use multi-element indexing with () instead of {} to map them
strs = labels(v);
您将获得与输入大小相同的cellstr
数组,其中包含与每个元素中的索引值对应的标签。您可以像strs{3}
一样索引它,以获取各个标签。