格式化Matlab流线型功能的数据输入

时间:2014-09-28 20:54:57

标签: arrays matlab

我正在尝试为二维矢量场绘制流线。我将数据放在一个二维数组中,每列包含X坐标,y坐标,水平速度和垂直速度。我正在尝试使用简化功能,但我无法确定如何正确格式化输入数据。

我知道每个输入矩阵应该是相同的大小。所以我试图使用以下内容来获得可行的输入:

[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));

但与我的位置相比,我的速度矩阵显然不再合理。

我有点失落所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分: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 );