在Matlab中,我有一个名为NewRatings
的1x2000变量,它只包含1到8之间的整数。
我想用与其编号对应的类别名称替换此变量中的每个值。
在名为{'AAA','AA','A','BBB','BB','B','CCC','Default'}
的1x8单元变量中,类别为Ratings
。所以我想将1的每个实例转换为AAA,将每个2的实例转换为AA,依此类推。
我尝试使用序数:
NewRatings = ordinal(NewRatings, Ratings)
但这给了我错误
CATEGORYNAMES和VALUESET必须具有相同的长度。
我有8个可能的值和8个类别,所以我不明白这个问题是什么。我过去曾使用这些类似的数据来解决类似的问题而没有任何问题。我在这里做错了什么?
答案 0 :(得分:3)
您可以使用newRatings
变量索引Ratings
单元格字符串数组
newRatings_strings = Ratings(newRatings);
至于为什么ordinal
不起作用,可能是因为1
和8
之间的每个值都没有在{{1}中表示}。您可以使用newRatings
unique
如果您确实想使用unique(newRatings)
,则可以获得与ordinal
Ratings
newRatings