【问题标题】:MATLAB: Best way to map integers to color stringsMATLAB:将整数映射到颜色字符串的最佳方法
【发布时间】:2017-04-27 19:17:49
【问题描述】:

我有一个表示预测变量标签的整数列表。该列表大小为 2000,包含 {1,2,3,4}。如何在不使用循环的情况下将这些数字分别映射到包含值 {'red'、'blue'、'green'、'black'} 的字符串元胞数组?

我尝试了 containers.Map,但显然这不适用于矢量。

【问题讨论】:

  • 你的意思是你想要一个大小为 2000 的元胞数组,每行的整数标签都有对应的颜色字符串吗?
  • 是的,这就是我要找的东西

标签: matlab colors mapping


【解决方案1】:

这可以通过简单地使用整数列表作为颜色元胞数组的索引来完成:

colors = {'red', 'blue', 'green', 'black'};  % Cell array of strings
numList = randi(4, [1 2000]);  % Sample data
colorList = colors(numList);   % 1-by-2000 cell array of strings

【讨论】:

  • 领先我 15 秒!
  • 啊,很简单,但从没想过要尝试,谢谢。
  • 嘿,有没有一种简单的方法可以将相同的整数向量映射到一个矩阵,其中每一行都是四个向量值之一,例如 {[1 0 0], [0 0 1],[ 0 1 0],[0 0 0]}?
  • @Jake:如果你的向量只包含整数,你实际上可以使用containers.Map 对象。我在this recent answer 的第二部分讨论了一种方法。基本上,您需要将整数向量转换为字符表示,因为地图需要字符键。您可以使用char(显示在链接的答案中)或sprintfnum2str 等函数来执行此操作。
猜你喜欢
  • 2020-08-06
  • 2016-02-01
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
相关资源
最近更新 更多