3-D Countour Plot based on velocity data

3 vues (au cours des 30 derniers jours)
JACK LONDON
JACK LONDON le 25 Déc 2022
Modifié(e) : Torsten le 25 Déc 2022
I have data consist of X(x coordinate) Y(y coordinate) Z(z coortinate) U(velocity).
there is four z height (0.05,0.18,0.31 and 0.44 )
I tried to create 3D countour plot with given code but it fails.
xyzu = readmatrix('velocity3d.txt');
xyzu = [xyzu(1,:); xyzu];
x=xyzu(:,1);
y=xyzu(:,2);
z=xyzu(:,3);
u=xyzu(:,4);
% [Ux,xix] = unique(x);
% dxix = diff(xix)
Xm = reshape(x, 6, []);
Error using reshape
Product of known dimensions, 6, not divisible into total number of elements, 221.
Ym = reshape(y, 6, []);
Zm = reshape(z, 6, []);
Um = reshape(u, 6, []);
figure
contour3(Xm,Ym,Zm,Um)
colormap(turbo)
colorbar
Which code I need to create 3D velocity countour plot? Thank you.
Note: I uploaded my data as an attachment.

Réponse acceptée

Torsten
Torsten le 25 Déc 2022
Modifié(e) : Torsten le 25 Déc 2022
xyzu = readmatrix('velocity3d.txt');
x=xyzu(:,1);
y=xyzu(:,2);
z=xyzu(:,3);
u=xyzu(:,4);
F = scatteredInterpolant(x,y,z,u);
xq = linspace(min(x),max(x),20);
yq = linspace(min(y),max(y),20);
zq = linspace(min(z),max(z),20);
[xq yq zq] = meshgrid(xq,yq,zq);
uq = F(xq,yq,zq);
xslice = mean(x);
yslice = mean(y);
zslice = mean(z);
slice(xq,yq,zq,uq,xslice,yslice,zslice)
colormap(turbo)
colorbar
  7 commentaires
JACK LONDON
JACK LONDON le 25 Déc 2022
Modifié(e) : JACK LONDON le 25 Déc 2022
In this case there is not 3d countour only 4 different 2d velocity countour seperately. I need 3d countour.
Torsten
Torsten le 25 Déc 2022
Modifié(e) : Torsten le 25 Déc 2022
Can you give a link to a plot you are talking about ? The one you posted is a 3d surface plot you can get for each z-value separately, but not for all z-values together.
This is all you can get:
xyzu = readmatrix('velocity3d.txt');
x=xyzu(:,1);
y=xyzu(:,2);
z=xyzu(:,3);
u=xyzu(:,4);
F = scatteredInterpolant(x,y,z,u);
xq = linspace(min(x),max(x),100);
yq = linspace(min(y),max(y),100);
zq = linspace(min(z),max(z),100);
[xq yq zq] = meshgrid(xq,yq,zq);
uq = F(xq,yq,zq);
zslice = [0.05,0.18,0.31,0.44];
h = slice(xq,yq,zq,uq,[],[],zslice);
colormap(turbo)
colorbar
set(h,'EdgeColor','none')

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Contour Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by