Countour plot based on velocity data
1 view (last 30 days)
Show older comments
I have data consist of X(x coordinate) Y(y coordinate) Z(velocity). I created below countour plot with especial flow software as below:
I try to plot countour in matlab with below code but it gives wrong results.
xyz=dlmread('velocity.txt');
x=xyz(:,1);
y=xyz(:,2);
z=xyz(:,3);
[X,Y]=meshgrid(min(x):max(x),min(y):max(y));
Z=griddata(x,y,z,X,Y);
contourf(X,Y,Z)
Which code I need to create velocity countour similar to first image? Thank you.
Note: I uploaded my data as an attachment.
0 Comments
Accepted Answer
Voss
on 24 Dec 2022
The x and y don't quite make a grid (a point is missing in the upper-left corner near (0,2)):
xyz = readmatrix('velocity.txt');
plot(xyz(:,1),xyz(:,2),'.')
so it's most convenient to use a scatteredInterpolant:
I = scatteredInterpolant(xyz(:,1),xyz(:,2),xyz(:,3));
[x,y] = meshgrid(unique(xyz(:,1)),unique(xyz(:,2)));
contourf(x,y,I(x,y))
colorbar
0 Comments
More Answers (0)
See Also
Categories
Find more on Blue in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!