3-D Countour Plot based on velocity data
조회 수: 2 (최근 30일)
이전 댓글 표시
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, []);
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.
댓글 수: 0
채택된 답변
Torsten
2022년 12월 25일
편집: Torsten
2022년 12월 25일
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
Torsten
2022년 12월 25일
편집: Torsten
2022년 12월 25일
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')
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Contour Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!