如何在MATLAB中定义自定义颜色快捷方式(如';r&';&';g';';b';';k';等)
我想知道是否有可能在MATLAB中定义自定义颜色快捷方式 可以使用如何在MATLAB中定义自定义颜色快捷方式(如';r&';&';g';';b';';k';等),matlab,colors,Matlab,Colors,我想知道是否有可能在MATLAB中定义自定义颜色快捷方式 可以使用r而不是在MATLAB中指定[1,0,0]?同样,是否可以定义另一个快捷方式 例如,我想定义 [0.9047,0.1918,0.1988]asrr [0.2941,0.5447,0.7494]asbbetc简单地说:是和否。您可以像您所说的那样创建自定义颜色快捷方式,但我看到您创建这些快捷方式的唯一方法是通过关联数组/字典。这可能不是你最初想要的,但这是我能想到的最接近你想要的。您不能创建像r这样的字符串,它将自身解析为[1,0,
r
而不是在MATLAB中指定[1,0,0]
?同样,是否可以定义另一个快捷方式
例如,我想定义
[0.9047,0.1918,0.1988]
asrr
[0.2941,0.5447,0.7494]
asbb
etc简单地说:是和否。您可以像您所说的那样创建自定义颜色快捷方式,但我看到您创建这些快捷方式的唯一方法是通过关联数组/字典。这可能不是你最初想要的,但这是我能想到的最接近你想要的。您不能创建像r
这样的字符串,它将自身解析为[1,0,0]
的元组(至少据我所知是这样的),但您可以创建一个颜色元组字典,其中您可以通过单个字符或字符串访问字典,并且输出将是一个3元素数组
这样,使用一个对象,键类型将是一个字符串(如rr
,bb
,等等),输出(值类型)将是一个双数组。例如,假设您的数组名为colormap
。然后对其进行初始化,并按如下方式抛出一些条目:
%// Initialize associative array
colourMap = containers.Map('KeyType', 'char', 'ValueType', 'any');
%// Put some entries in - referring to your post
colourMap('r') = [1 0 0];
colourMap('rr') = [0.9047,0.1918,0.1988];
colourMap('bb') = [0.2941,0.5447,0.7494];
设置后,您可以通过执行以下操作访问所需的特定颜色元组:
colourMap(s)
s
将是您想要的字符串。我不知道你想用它做什么,但我想你可能想定制一个绘图的颜色。例如,我们可以这样做:
plot(1:5, 1:5, 'Color', colourMap('bb'));
这将为x
和y
创建一个从1到5的绘图,并使用存储在bb
中的颜色元组为地图上色
这是我看到您创建自定义字符串快捷方式的唯一方法。FWIW,MATLAB已经有了内置的颜色,可以用来绘制数据。例如,如果要绘制红线,只需执行以下操作:
plot(1:5, 1:5, 'r');
使用
现在要使用这些颜色,请使用属性,即
plot(x, y, 'Color', c.br); %Using the color 'bronze' defined in the struct
如果要执行此操作,还可以简单地创建一个函数
colormap
,该函数将返回[0.9047,0.1918,0.1988]
,用于输入'rr'
,依此类推。这将与您建议的语法完全相同,并且可能更易于维护。或者,比这两个选项更好的方法是创建一个包含预定义颜色列表的枚举类Colors
,然后可以键入Colors.rr
或Colors.bb
等等。这是正确的做法。@rayryeng和SamRoberts谢谢。这将符合我的目的。如果您的建议有任何其他改进,请发布。
plot(x, y, 'Color', c.br); %Using the color 'bronze' defined in the struct