3

我想将数字输出从矩阵映射到字符串。

给定

compute=[ 7, 4, 3; 3, 4, 7]

如何获得字符串映射为

Out=[Run, Walk, Jog; Jog, Walk, Run]

实际输出可能是一个字符串元胞数组。

4

4 回答 4

3
>> 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'
于 2013-11-07T22:06:48.537 回答
2

我假设您拥有单元格数组形式的地图

>> map{3} = 'Jog';
>> map{4} = 'Walk';
>> map{7} = 'Run';

现在使用地图

map( compute )

会给你一个字符串的单元格数组

于 2013-11-07T22:08:08.057 回答
1

MATLAB 有一个容器类型,这使得这非常简单:Map

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方法

>> vals = map.values(num2cell(compute))
vals = 
    'Run'    'Walk'    'Jog'
    'Jog'    'Walk'    'Run'
于 2013-11-07T22:21:31.583 回答
0

您可以使用单元格数组

strs = {'一','二','慢跑','步行','五','六','跑'};

计算=[ 7, 4, 3; 3、4、7];

out = strs(计算);

出=

'Run'    'Walk'    'Jog'
'Jog'    'Walk'    'Run'
于 2013-11-07T22:11:42.550 回答