Matlab:如何为区域着色

时间:2015-05-19 23:19:35

标签: matlab colors

我希望使用Matlab实现以下目标: 我有一个函数,它接受两个输入并给出一个实数。

function T = SS(x,y)
%%% some calculation %%%
T = returnval

如果返回值等于1,我希望x-y平面中的点(x,y)为蓝色,如果返回值等于0.5,则为绿色。

我不知道如何处理这个问题。 (计算很复杂,所以x和y之间关于z的关系并不明显。因此,不能写一个方程来区分区域,然后相应地进行颜色。)

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您可以将所有T分组到矢量中,则可以使用scatter制作图表。然后只需设置自己的色彩映射表。这是一个例子:

%// Sample data
[x,y]=meshgrid(0:.1:2);
x=x(:);y=y(:);
T=rand(size(x));

%// Define the colormap
MAP=[1 0 0; %// red
    0 1 0;  %// green
    0 0 1]; %// blue
colormap(MAP) %// apply the colormap
scatter(x,y,[],T) %// make the plot

MAP是一个矩阵,每行定义一种颜色。在这种情况下,有三行,因此值在0到1/3之间的元素将是红色,值在1/3和2/3之间的元素将是绿色,而在2/3和1之间的元素将是蓝色。通常,T值的范围(即max(T)-min(T))均匀分为MAP定义的每种颜色。