I have the 2-D PIV data like below and I am not able to get streamlines in matlab:
ix,iy,iz = image coordinate X,Y,Z [pixel]
dx = displacement component X [pixel] * (image resoltion) = mm
dy = displacement component Y [pixel] * (image resoltion) = mm
--------------------------------------------------
So I have dx and dy in mm. Also I can calculate: du = dx/dt , dv = dy/dt as the velocities in x and y directions.
I want to get the streamline usnig streamline/streamslice functions in matlab but I do not know how to define startx and starty?? Should I use meshgrid function for that? and shoul I use ix,iy(image coordinates) OR dx,dy to define startx and starty points?
Moreover do I need to define meshgrid for du,dv to fill velocities for every point??
Any help would be appreciated.
A = xlsread(......myfile.xls); % myfile.xls contains all data.
dx = A(1:end,4); % size(dx) = 8400*1
dy = A(1:end,5); % size(dy) = 8400*1
du = A(1:end,6); % size(du) = 8400*1
dv = A(1:end,7); % size(dv) = 8400*1
[startx,starty] = ?????
[X,Y] = meshgrid(dx,dy);
streamline(X,Y,du,dy,startx,starty);

1 件のコメント

Ham Man
Ham Man 2021 年 7 月 16 日
The streamline/streamslice gave me an error stating that U,V should be 3D data. How can I make those in 3D?

サインインしてコメントする。

 採用された回答

KSSV
KSSV 2021 年 7 月 14 日
編集済み: KSSV 2021 年 7 月 14 日

2 投票

Try:
skip = 2 ; % can be changed
startx = X(1:skip:end,1:skip:end) ;
starty = Y(1:skip:end,1:skip:end) ;
streamline(X,Y,du,dy,startx,starty);
Also have a look on streamslice. This would be a better function to use.

11 件のコメント

Ham Man
Ham Man 2021 年 7 月 14 日
編集済み: Ham Man 2021 年 7 月 14 日
Thanks for replying KSSV.
It gave me an error for the size of du and dv. Shouldn't be du and dv in the same size of X,Y? X and Y are now a grid but du,dv are both have one column.
size(X) = size(Y) = 8400*8400
size(du) = size(dv) = 8400*1
Ham Man
Ham Man 2021 年 7 月 14 日
Is this true for input argument for "streamline" function:
streamline(x displacement,y displacement,velocity in x direction,velocity in y direction)??
KSSV
KSSV 2021 年 7 月 15 日
(x,y) are locations at which you have velocitties (u,v). If you don't have locations you can plot w.r.t indices.
Ham Man
Ham Man 2021 年 7 月 16 日
The streamline/streamslice gave me an error stating that U,V should be 3D data. How can I make those in 3D?
KSSV
KSSV 2021 年 7 月 17 日
Share your data.
Ham Man
Ham Man 2021 年 7 月 17 日
編集済み: Ham Man 2021 年 7 月 17 日
Here is my data. Thanks for your attempt.
ERROR:
Error using streamslice (line 142)
Volume data arguments must be 3-D arrays.
Ham Man
Ham Man 2021 年 7 月 18 日
編集済み: Ham Man 2021 年 7 月 18 日
I wonder how to make du,dv in the same size of X,Y? should I use reshape or repmat to make du and dv in the same size of X,Y( made by meshgrid(dx,dy) )?
otherwise the streamline are not achievable.
KSSV
KSSV 2021 年 7 月 18 日
T = readtable('https://in.mathworks.com/matlabcentral/answers/uploaded_files/687023/ane1_data.xlsx.xlsx') ;
T(8447,:) =[] ; % remove NaNs
x = T.(1) ; y = T.(2) ;
dx = T.(4) ; dy = T.(5) ;
[X,Y] = meshgrid(linspace(min(x),max(x)),linspace(min(y),max(y))) ;
dX = griddata(x,y,dx,X,Y) ;
dY = griddata(x,y,dy,X,Y) ;
streamslice(X,Y,dX,dY)
Ham Man
Ham Man 2021 年 7 月 19 日
Awesome, Many thank to you. This is what I was looking for. Much appreciate.
I tried "streamline" function but no luck. How does it work with these data?
KSSV
KSSV 2021 年 7 月 19 日
T = readtable('https://in.mathworks.com/matlabcentral/answers/uploaded_files/687023/ane1_data.xlsx.xlsx') ;
T(8447,:) =[] ; % remove NaNs
x = T.(1) ; y = T.(2) ;
dx = T.(4) ; dy = T.(5) ;
[X,Y] = meshgrid(linspace(min(x),max(x)),linspace(min(y),max(y))) ;
dX = griddata(x,y,dx,X,Y) ;
dY = griddata(x,y,dy,X,Y) ;
streamline(X,Y,dX,dY,X,Y)
And thanks is accepting/ voting the answer.
Ham Man
Ham Man 2021 年 7 月 19 日
編集済み: Ham Man 2021 年 7 月 19 日
Perfect. Thanks again KSSV.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeVector Fields についてさらに検索

質問済み:

2021 年 7 月 14 日

編集済み:

2021 年 7 月 19 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by