2014-09-28 63 views
1

我正在嘗試爲二維矢量場繪製流線。我有一個二維數組中的數據,每列包含X座標,y座標,水平速度和垂直速度。我試圖使用簡化函數,但是我很難弄清楚如何正確地格式化輸入數據。爲Matlab精簡函數格式化數據輸入

我知道每個輸入矩陣應該是相同的大小。所以,我試圖使用以下方法來獲得可行的輸入:

[X Y]= meshgrid(sf(1:250:end,1), sf(1:250:end, 2)); 
[U V]= meshgrid(sf(1:250:end,3), sf(1:250:end,4)); 

但我的速度矩陣顯然已不再有意義相比,我的位置。

我有些失落,所以任何幫助都會很棒。

+0

在哪裏你''x' y'從何而來?他們是如何產生的? – Shai 2014-09-29 05:46:24

回答

1

您可以使用griddata重新安排你的數據轉換成規則的網格

f = min(sf(:,1:2), [], 1); %// XY grid starting points 
t = max(sf(:,1:2), [], 1); %// XY endpoints 
[X Y] = meshgrid(linspace(f(1), t(1), 50), linspace(f(2), t(2), 50)); %//grid 
U = griddata(sf(:,1), sf(:,2), sf(:,3), X, Y); 
V = griddata(sf(:,1), sf(:,2), sf(:,4), X, Y); 
startx = ; %// define streamline starting points 
starty = ; %// 
streamline(X, Y, U, V, startx, starty);