2016-10-22 49 views
0

我有一組點,它們顯示空間某些座標上的速度矢量。我想要有可視化我的數據集的矢量場圖。你能告訴我如何在MATLAB中做到這一點?一組點和矢量場

回答

0

假設它是二維測量,您可以從「scatter(x,y)」開始,繪製每個測量座標點的點。正如我們很快就會看到,你會不會使用你的第一個和最後一次測量,所以它應該是:

scatter(x(2:end-1), y(2:end-1)) 

接下來,你需要在每個矢量的方向。如果你的測量頻率足夠高,數值導數應該給你正確的結果。 「diff(vec)」將返回相鄰點之間差異的向量。所以你可以得到由每個點的右側導數:

dy = diff(y) 
dx = diff(x) 
% to be able to differentiate even when dx=0, will replace 0 with a very small number 
for i=(dx == 0) 
    dx(i) = eps 
der = dy/dx 

然而,你可能需要的「平均」的衍生物,它可以通過獲得:

avg_der = (der(1:end-1) + der(2:end))/2 
現在

,你可以畫在你繪製的每個點上的一條線,用dx = dx/normalization_size,dy = der * dx/normalization_size。線可以繪製。

for i=1:length(avg_der) 
    line([x(i+1) (x(i+1) + mean(dx(i:i+1))/NORMALIZATION)], [y(i+1) (y(i+1) + avg_der(i) * mean(dx(i:i+1))/NORMALIZATION)])