2011-12-08 40 views
0

我想在3D矩形中爲變化的溫度梯度設置動畫。我在一個真實的容器中的指定點有溫度值。我無法弄清楚如何將Matlab中的3D容器中的溫度值傳遞給指定的點。讓我說在矩形的一邊有10個點,其餘的五邊都有相同的點。 任何建議如何在matlab中爲3D矩形中的特定點分配值

+0

感謝議員的答案。我已經繪製了使用你的功能,但我想要一個漸變溫度,最冷的爲藍色,最熱的爲紅色。在這種情況下,我得到了指定的點數,但是在這些點之間呢?如何使它們填充不同的顏色漸變 – mirage

回答

0
Temp=zeros(10,10,10); 
Temp(5,2,4)=25; 
1

讓我們假設你的長方形容器(0,0,0)的空間取向爲頂點和邊沿着X,Y和Z軸。並且你有一組三點座標(x,y,z)。在MATLAB中,它可能由3個向量X,Y和Z表示。每個點也有一個溫度值向量(比如說T)。

然後你可以使用SCATTER3功能繪製點:

scatter3(X,Y,Z,[],T,'.') 

你可以改變點取代一個值空參數的大小。

如果你只有點在容器的面上,這意味着其中一個座標是0或相應邊的大小。

顏色由當前顏色圖控制。您可以使用COLORMAP函數進行更改。對於溫度來說,好的是「熱」或「冷」。用COLORBAR顯示色階。

這裏是用隨機數據爲例:

%# random coordinates 
X = rand(60,1,1); 
Y = rand(60,1,1); 
Z = rand(60,1,1); 

%# put the points into faces 
X(1:10) = 0; 
X(10:20) = 1; 
Y(20:30) = 0; 
Y(30:40) = 1; 
Z(40:50) = 0; 
Z(50:60) = 1; 

%# temperature vector 
T = rand(60,1,1) * 100; 

%# plot 
scatter3(X,Y,Z,[],T,'.') 
grid off 
box on 
colormap hot 
colorbar