Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中定义自定义颜色快捷方式(如';r&';&';g';';b';';k';等)_Matlab_Colors - Fatal编程技术网

如何在MATLAB中定义自定义颜色快捷方式(如';r&';&';g';';b';';k';等)

如何在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,

我想知道是否有可能在MATLAB中定义自定义颜色快捷方式

可以使用
r
而不是在MATLAB中指定
[1,0,0]
?同样,是否可以定义另一个快捷方式

例如,我想定义

[0.9047,0.1918,0.1988]
as
rr


[0.2941,0.5447,0.7494]
as
bb
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