显示具有非矩形边界的表面
Displaying surface with non-rectangular boundary
参考附图。我想使用函数 surf()
在 Matlab 中显示图像。但是,我只想显示没有背景的实际对象区域(实际对象周围的浅绿色区域,其值为 0)。怎么做?我尝试用 0
替换所有外部区域 NaN
并将高度图中的所有值设置为非零值,但我仍然收到错误消息:
Subscript indices must either be real positive integers or logicals.
那么如何显示具有非矩形边界的表面?
将这些值设置为 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
参考附图。我想使用函数 surf()
在 Matlab 中显示图像。但是,我只想显示没有背景的实际对象区域(实际对象周围的浅绿色区域,其值为 0)。怎么做?我尝试用 0
替换所有外部区域 NaN
并将高度图中的所有值设置为非零值,但我仍然收到错误消息:
Subscript indices must either be real positive integers or logicals.
那么如何显示具有非矩形边界的表面?
将这些值设置为 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