2017-09-24 54 views
3

下圖只是帶有surf的2d數組的示意圖。我想創建一個類似的圖,其中10個這樣的二維數組彼此堆疊在一起,並且沿着z軸有一些偏移量。在MATLAB中使用surf創建堆疊的2d矩陣

figure(); 
surf(X); 
colormap(hsv); 
shading interp; 
campos([-70 -150 80]); 
grid on; 
set(gcf,'color','w'); 

enter image description here

回答

3

只需撥打surf幾次hold on,將逐漸增加所抵消。

通過默認(1輸入版本surf),偏移量將影響每個表面顯示的顏色。這裏有三個2D陣列的例子。請注意,峯 - 峯值幅度對於每一個都是不同的。

x{1} = .2*peaks(30); 
x{2} = .4*peaks(30); 
x{3} = .8*peaks(30); % cell array containing three 2D arrays 
offset = 7; % desired offset 
hold on 
for k = 1:numel(x) 
    surf(x{k} + offset*(k-1)) 
end 
campos([-100 -170 90]) 
grid on 

enter image description here

,以防止影響顏色偏移量,即實現一致的顏色爲所有表面,使用surf的2-或4-輸入版本分別指定高度和顏色:

x{1} = .2*peaks(30); 
x{2} = .4*peaks(30); 
x{3} = .8*peaks(30); 
offset = 7; 
hold on 
for k = 1:numel(x) 
    surf(x{k} + offset*(k-1), x{k}) % Only this line has been changed 
end 
campos([-100 -170 90]) 
grid on 

enter image description here

爲了根兒吃疊飛機(沒有高度的變化)與依賴於價值顏色:修改輸入的參數如下:

x{1} = .2*peaks(30); 
x{2} = .4*peaks(30); 
x{3} = .8*peaks(30); 
offset = 7; 
hold on 
for k = 1:numel(x) 
    surf(repmat(offset*(k-1), size(x{k})), x{k}) % Only this line has been changed 
end 
campos([-100 -170 90]) 
grid on 

enter image description here

+0

謝謝你的快速回復。是的,它會影響每個表面顯示的顏色。由於我很好奇,我想問問在這種情況下是否可以使用'pcolor'代替衝浪?我會放鬆海拔,但沒關係。 –

+1

@ShaibalAhmed好問題。它不能用'pcolor' AFAIK完成,但它可以通過'surf'使用兩個不同的輸入參數來指定高度和顏色。這也可以應用於原始(非平坦)曲面以使其顏色與偏移無關。見編輯的答案 –