我希望使用Matlab实现以下目标: 我有一个函数,它接受两个输入并给出一个实数。
function T = SS(x,y)
%%% some calculation %%%
T = returnval
如果返回值等于1,我希望x-y平面中的点(x,y)为蓝色,如果返回值等于0.5,则为绿色。
我不知道如何处理这个问题。 (计算很复杂,所以x和y之间关于z的关系并不明显。因此,不能写一个方程来区分区域,然后相应地进行颜色。)
感谢您的帮助。
答案 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
定义的每种颜色。