显示具有非矩形边界的曲面

Phy*_*ist 2 3d matlab plot image-processing surface

请参阅附图.我想使用该功能在Matlab中显示图像surf().但是,我只想显示没有背景的实际对象的区域(实际对象周围的淡绿色区域有0值).怎么做?我试图更换所有的外部区域0NaN和在高度地图为非零值设置所有的值,但我仍然得到的错误消息:

Subscript indices must either be real positive integers or logicals.
Run Code Online (Sandbox Code Playgroud)

那么如何显示具有非矩形边界的曲面?

在此输入图像描述

Lui*_*ndo 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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述