1

我有 4 个行向量x, y, z and s,它们都具有相同的大小1*sizex, y, z应该是三个笛卡尔坐标轴,s应该用颜色表示(我想要下图)。该语句Surf不接受行向量。我已经阅读了几篇stackoverflow帖子,但我找不到答案。我怎样才能绘制这样的数字?我非常感谢您能提供的任何帮助。

4

2 回答 2

0

您可以尝试使用这个 3D 立方体的 3D 网格示例,它会绘制“温度”。

例子

L = 1;
dx = 0.25;
dy = dx;
dz = dy;
Nx = L/dx;   Ny = Nx;    Nz = Ny;
x = dx/2:dx:L-dx/2;
y = x;       z = y;
[xx, yy, zz] = meshgrid(x,y,z);
theta = NaN(size(zz));

for jj=1:4;
    for ii=1:4
        for kk=1:4
            theta(jj,ii,kk) = 273.15 + 5.*random('normal', 0, 1)
        end
    end
end

clf
isosurface(xx, yy, zz, theta)
colorbar
colormap jet
[fe, ve, ce] = isocaps(x, y, z, theta, 10);
p2 = patch('Faces', fe, 'Vertices', ve, 'FaceVertexCData', ce);
p2.FaceColor = 'interp';
p2.EdgeColor = 'none' ;
grid on
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Temperatures');
set(gca, 'clim', [273.15 273.15+5])
set(get(colorbar, 'title'), 'string', 'K', 'FontW', 'bold', 'fontname', 'Times New Roman', 'fontsize', 14);
view(3)
于 2018-11-07T18:40:07.813 回答
0

我无法测试它,因为您没有提供任何数据,但您可以尝试:

trisurf(x,y,z,s)

如果这不起作用,请尝试:

DT = delaunayTriangulation(x,y,z);
tetramesh(DT,s);
于 2016-07-06T08:37:28.157 回答