2013-10-10 113 views

回答

1

您可以設定截止上述值nan

[X,Y] = meshgrid(-100:100,-100:100); 
Z = X.^2+Y.^2; 
ind = Z > 10000; 
Z(ind) = nan; 
mesh(X,Y,Z) 

example

3

兩種方法你可以用來切一個3-d的情節。

  • (左)設置NaN上面和下面兩個閾值(@莫莉的建議
  • 使用當前axesZLim屬性,使用完全相同的閾值(右)。

你可以看到,NaN方面的瓷磚surf創建的,因此它可以在surf水平。另一方面,ZLim創建了很好的切割圖,即使通過切片 - 它在渲染級別上工作。

最後,要使用NaN進行更好的切割,可以定義更細的網格(例如,meshgrid(-10:0.01:10, -10:0.01:10)),但是仍然依賴於創建的網格。此外,ZLim方法將很容易在恆定的z處切片(但這是輪廓線所關注的)。

以下情節

enter image description here

[x y] = meshgrid(-10:10,-10:10); 
z = x.^2+y.^2; 
figure 

%%%% solution 1 (NaN) 
z_trim = z; 
z_trim(z_trim<100) = NaN; 
z_trim(z_trim>150) = NaN; 

subplot(1,2,1); 
surf(z_trim) 
set(gca, 'Visible', 'off'); 
view(-20,30) 


%%%% solution 2 (ZLim) 
subplot(1,2,2); 
surf(z) 
set(gca,'Zlim',[100 150], 'Visible', 'off'); 
view(-20,30) 
產生