请参阅附图。我想使用函数surf()
在Matlab中显示图像。但是,我只想显示没有背景的实际对象的区域(实际对象周围的淡绿色区域有0值)。怎么做?我尝试将所有外部区域替换为0
NaN
,并将高度图中的所有值设置为非零值,但仍然收到错误消息:
Subscript indices must either be real positive integers or logicals.
那么如何显示具有非矩形边界的曲面?
答案 0 :(得分:5)
将这些值设置为NaN
应该这样做。这是一个例子:
[x, y] = ndgrid(linspace(-1,1,500));
z = cos(2*pi*(x+y)*2);
z(x.^2+y.^2>1) = NaN; %// remove values outside unit circle
surf(x,y,z,'edgecolor','none')
colorbar
view(2)
axis equal