我有一组 3d 数据点,每个数据点与某个数量的值 V 相关联。数据组织在有序列 XYZV 中,其中空间坐标分布在网格上。我在每个方向都有 21 个点,所以几列的长度是 21x21x21=9261。如何将数据转换为可以isosurface
在 Octave/Matlab 中使用的网格?我的代码如下
a=load("data.txt");
X=reshape(a(:,1), 21,21,21);
Y=reshape(a(:,2), 21,21,21);
Z=reshape(a(:,3), 21,21,21);
V=reshape(a(:,2), 21,21,21);
fv=isosurface (X,Y,Z,V,0.9);
patch(fv)
但结果没有意义(我得到两个平面位于 x=0.9 和 1。)。数据可以在这里下载。