我试图通过调用' flipud'来反转色彩图(改变正/负颜色方向):
colormap(flipud(hot)); % flips color map
colormap(flipud('hot')); % no effect
我没想到这个结果。为了澄清,这是因为对flip的内部调用是翻转字符串(产生相同的字符串)并加载之前的相同颜色映射?如果没有引号,它会翻转实际的颜色值矩阵?
答案 0 :(得分:2)
hot
是一个返回色图矩阵的函数:
hot()
ans =
0.0416666666666667 0 0
0.0833333333333333 0 0
0.125 0 0
因此,在第一种情况下,您正在翻转矩阵。在第二种情况下,正如您所说的那样,您正在尝试翻转字符数组'hot'
并从中构建颜色图。
超出此行为的根本原因是,在Matlab中没有参数的函数可以在不使用括号的情况下调用。你认为pi
是一个数值常数吗?错了,pi
是一个内置函数。在你的控制台中试试这个:
pi
ans =
3.14159265358979
pi()
ans =
3.14159265358979
另一种选择,虽然我没有看到使用它的重点,除非你正在使用用户输入或类似的东西,将按如下方式编写你的电话:
text = 'hot';
colormap(flipud(eval(text)));