2016-02-26 55 views
0

首先,我想說明一點,我是使用MATLAB的初學者,儘管我對語法有一些想法。我正在研究一個項目,試圖映射環境中粒子的位移。我已經操縱了所有的數據,所以這一切都歸結爲estetics。 所以基本上我有兩個矩陣12×19×15,其中粒子的座標(lat,long)和第三維是時間步長。所以粒子的位置隨着時間而變化。現在我想以這樣一種方式繪製它,即在第一次對每個元素進行分步操作時(所以12到19,儘管數組中有相當多的零和NaN)具有它自己的顏色,在下一個時間步中不會改變。這樣你可以跟蹤粒子的運動。請注意,我正在使用兩個矩陣(一個用於緯度,另一個用於經度,給出粒子的位置)。因此,繪圖看起來像這樣如何通過循環將特定顏色分配給3D數組的每個元素

for it=1:nt 
    plot(lat(:,:,it), long(:,:,it), 's'); hold on; 
end 

這也將是很好,如果連接線將在先前的位置和新之間的每個succesive時間步繪製。

我遇到了這個問題,因爲當我在plot()中指定顏色時,所有元素都會獲得自己的顏色。另外,當我嘗試畫線時,時間步驟中的所有元素都會互相連接,這只是一團糟。我只能做一個粒子,但如果我介紹很多它不起作用。

回答

0

嘗試使用分散(documentation here)

或持有所有,而不是在

+0

Scatter不會允許我這樣做可能是因爲我正在繪製兩個矩陣的數據? –

0

這解決了這個問題擱置。乾杯

colors = hsv(19); 
for i = 1 : 12 
for j = 1 : 19 
    x = squeeze(MH.xn(i,j, :)); 
    y = squeeze(MH.yn(i,j, :)); 
    plot(x, y, 'color', colors(j, :)); hold on; 
    for k = 1 : size(x, 1) 
     plot(x(i), y(i), 'd', 'MarkerSize', 10, 'color', colors(j, :)); 
    end 
end 
相關問題