Why do I get an error trying to slice a 3D?

3 次查看(过去 30 天)
Error using matlab.graphics.chart.primitive.Surface
Error setting property 'CData' of class 'Surface':
Value must be a 2D or 3D array of numeric type.
clc
x = linspace(0, 3, Nx*3);
y = linspace(0, 1, Ny*1);
z = linspace(0, 1, Nz*1);
[X, Y, Z] = meshgrid(x, y, z);
EQ_gy = cos(2*pi*X).*sin(2*pi*Y) + cos(2*pi*Y).*sin(2*pi*Z) + cos(2*pi*Z).*sin(2*pi*X);
[y,z] = meshgrid(linspace(0,1,20));
for off=0.5:0.5:2.5
x = off + zeros(size(z));
surf(x,y,z,EQ_gy)
hold on
end
hold off
xlim([0 2.5])

回答(1 个)

Walter Roberson
Walter Roberson 2023-9-15
you cannot use surf to display solid volumes. See volshow
  1 个评论
Walter Roberson
Walter Roberson 2023-9-15
If you have three independent input variables and one dependent output variable, then you should consider: slice or isosurface or volshow or volumeviewer

请先登录,再进行评论。

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by