在matlab中基于数值数组创建图例

时间:2013-11-23 15:01:45

标签: arrays matlab

有一个数组从1到5填充数字。每个数字表示一个特定的类。 填充另一个数组的最佳方法是将其转换为表示类的字符串数组。

例如:

Numbers=[1; 2; 3; 3; 2; 1]

答案应该是:

Strings=['Apple'; 'Orange'; 'Banana', 'Banana', 'Orange'; 'Apple']

我知道用循环来做这件事是件微不足道的事情。但是,是否存在一种更优雅的解决方案,它不在matlab中使用循环?

1 个答案:

答案 0 :(得分:2)

您只需使用您的数字索引标签的单元格数组:

Numbers = [1; 2; 3; 3; 2; 1]
Labels = {'Apple';'Orange';'Banana'};

Strings = Labels(Numbers);

请注意,结果必须是单元格数组(不是矩阵),因为字符串的长度不同。

在您的示例中,这给出了:

>> Strings

Strings = 

    'Apple'
    'Orange'
    'Banana'
    'Banana'
    'Orange'
    'Apple'