Plot a function of three variables on a surface plot

조회 수: 54 (최근 30일)
Fawad Farooq Ashraf
Fawad Farooq Ashraf 2023년 3월 30일
편집: Torsten 2023년 4월 2일
Hello. I have some experimental data of electric field E. The values were measured along three axes x, y and z such that: along x axis (x=0:5:50), values of Ex were measured (Assume Ex = rand(size(x)) for reference), then along y axis (y=0:5:70), values of Ey were measured (Assume Ey = rand(size(y)) here for reference), and along z axis (0:5:20), Ez was measured (Ez = rand(size(z)) assumed here). I want to plot this data in a 3D surface plot. How can I do this?
  댓글 수: 1
Torsten
Torsten 2023년 4월 2일
편집: Torsten 2023년 4월 2일
So given a point (x,y,z) in 3d space, what do you want to plot at this point ? sqrt(Ex^2+Ey^2+Ez^2) ?

댓글을 달려면 로그인하십시오.

답변 (1개)

Star Strider
Star Strider 2023년 3월 30일
If all the data are vectors (that would appear to be true since ‘x’ is a vector), it would be necessary to use either the griddata or scatteredInterpolant function to create a surface from them.
.
  댓글 수: 2
Fawad Farooq Ashraf
Fawad Farooq Ashraf 2023년 4월 2일
how to do that? I don't understand these functions.
Star Strider
Star Strider 2023년 4월 2일
Here is an example using scatteredInterpolant and random vectors —
x = randn(1,20); % Create Data Vector
y = randn(1,20); % Create Data Vector
z = randn(1,20); % Create Data Vector
xv = linspace(min(x), max(x), numel(x)); % Interpolatioon Vector
yv = linspace(min(y), max(y), numel(y)); % Interpolation Vector
[X,Y] = ndgrid(xv,yv); % Interpolation Matrices
F = scatteredInterpolant(x(:),y(:),z(:)); % Create Interpolant Function
Z = F(X,Y); % Calculate 'Z' By Interpolation
figure
surfc(X, Y, Z) % Plot Result
grid on
xlabel('X')
ylabel('Y')
zlabel('Z')
colormap(turbo) % Introduced In R2020b
colorbar
The griddata function works similarly, however has different arguments and produces a lsightly different result.
.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by