将矩阵元素映射到字符串

时间:2013-11-07 22:03:48

标签: string matlab map mapping

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

鉴于

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

如何获得字符串映射为

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

实际输出可能是字符串的单元格数组。

4 个答案:

答案 0 :(得分: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'

答案 1 :(得分:2)

我假设你有一个单元格数组的地图

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

现在使用地图

map( compute )

将为您提供字符串的单元格数组

答案 2 :(得分:1)

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'

答案 3 :(得分:0)

您可以使用单元格数组

strs = {'one','two','Jog','Walk','five','six','Run'};

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

out = strs(compute);

out =

'Run'    'Walk'    'Jog'
'Jog'    'Walk'    'Run'