如何在Matlab中勾勒出曲面图中的区域

时间:2016-12-12 18:00:25

标签: arrays matlab scatter-plot surface

我有一个2D数组data,我使用surf绘制它。在曲面图中,data中的元素大于0.9*max(max(data))。我想概述'该区域。我怎样才能做到这一点?

如果我输入

data_copy = data;
data_copy(data<0.9) = nan;

然后,如果我将散点图与原始曲面图一起使用来绘制非{nan}的data_copy坐标,我可以“阴影”。该区域。但我只是想要这个边界&#39;该地区。怎么做?

1 个答案:

答案 0 :(得分:0)

我不确定,这正是您想要的,但您可以尝试以下方法:考虑一个简单的示例 - f(x,y)=sin(2 pi x)。您可以从绘图中删除边缘(如果您有大量数据,它看起来很乱)。然后,您可以显式设置颜色:使用一种颜色绘制感兴趣的区域,使用其他颜色绘制所有其他数据:

data=repmat(sin(2*pi*(0:0.01:1)),numel(0:0.01:1),1); %define data
s=surf(data) % plot
s.EdgeAlpha=0; % remove edges
s.CData(data>=0.9*max(max(data)))=0; %set the color for the region of interest
s.CData(data<0.9*max(max(data)))=1; %set different color for all other data

现在很明显,你的边界在哪里。