【发布时间】:2013-11-19 18:53:54
【问题描述】:
我想将数字输出从矩阵映射到字符串。
给定
compute=[ 7, 4, 3; 3, 4, 7]
如何获得一个字符串映射为
Out=[Run, Walk, Jog; Jog, Walk, Run]
实际的输出可能是一个字符串元胞数组。
【问题讨论】:
-
我喜欢一个问题在前五分钟得到 3 个答案。你几乎可以听到“哦!我知道这个!”的同时喊叫声
我想将数字输出从矩阵映射到字符串。
给定
compute=[ 7, 4, 3; 3, 4, 7]
如何获得一个字符串映射为
Out=[Run, Walk, Jog; Jog, Walk, Run]
实际的输出可能是一个字符串元胞数组。
【问题讨论】:
>> map={'a','b','Jog','Walk','e','f','Run'}
map =
'a' 'b' 'Jog' 'Walk' 'e' 'f' 'Run'
>> map(compute)
ans =
'Run' 'Walk' 'Jog'
'Jog' 'Walk' 'Run'
【讨论】:
我假设您拥有元胞数组形式的地图
>> map{3} = 'Jog';
>> map{4} = 'Walk';
>> map{7} = 'Run';
现在使用地图
map( compute )
会给你一个字符串元胞数组
【讨论】:
MATLAB 有一个 Map container type,这使得这非常简单:
keySet = [7, 4, 3];
valSet = {'Run', 'Walk', 'Jog'};
map = containers.Map(keySet,valSet);
获取请求的值:
>> vals = values(map,num2cell(compute))
vals =
'Run' 'Walk' 'Jog'
'Jog' 'Walk' 'Run'
这毕竟是一个类,所以你也可以使用更熟悉的 OOP 语法来调用values method:
>> vals = map.values(num2cell(compute))
vals =
'Run' 'Walk' 'Jog'
'Jog' 'Walk' 'Run'
【讨论】:
你可以使用元胞数组
strs = {'一','二','慢跑','步行','五','六','跑'};
计算=[ 7, 4, 3; 3, 4, 7];
out = strs(计算);
输出 =
'Run' 'Walk' 'Jog'
'Jog' 'Walk' 'Run'
【讨论】: