如何插值和绘制 4 维汉堡包?
How to interpolate and plot a 4-Dimensional hamburger?
我已经通过有限差分求解八度热方程,并生成了以下 3-D 图,其点颜色对应于我的三维汉堡包中每个元素的温度。
我的计算资源限制了我解决汉堡的分辨率。因此,获得我想要的情节的唯一方法是让我的 scatter3 点变成巨大的颜色斑点,它看起来有点糟糕。
[x,y,z] = meshgrid(1:nx,1:ny,1:nz) % Defines a grid to plot on
scatter3(x(:), y(:), z(:), 40, burgermatrix(:), 's', 'filled')% Point color=value
我要的是像这样漂亮华丽光滑的直角棱镜:
所以我想我需要以某种方式在我拥有的 3D 点之间进行插值。谁能帮我弄清楚该怎么做?
我可能遗漏了一些明显的东西,但这是八度 help slice
的示例:
[x, y, z] = meshgrid (linspace (-8, 8, 32));
v = sin (sqrt (x.^2 + y.^2 + z.^2)) ./ (sqrt (x.^2 + y.^2 + z.^2));
slice (x, y, z, v, [], 0, []);
[xi, yi] = meshgrid (linspace (-7, 7));
zi = xi + yi;
slice (x, y, z, v, xi, yi, zi);
shading interp; %addition by me
这不正是您所需要的吗?你有你的网格(x
,y
,z
),你的解决方案(T
),所以你只需要绘制它沿着 [0 0 1]
等切片。像
[xi yi]=meshgrid(unique(x),unique(y));
slice (x, y, z, T, xi, yi, max(z(:))*ones(size(xi)));
沿其他两个轴的切割也是如此。 (显然,unique
调用应该替换为您首先从中构建 3d 网格的向量。)
注意: 顺便说一句,您真的应该考虑更改默认 (jet
) 颜色图。我昨天被一位同事启发了 SciPy 人制作的 viridis
colormap,例如 this post and video link therein. Their reasoning is overwhelming, and their colormap is beautiful. This should define it: viridis,虽然我自己还没有尝试过。
(如果不是jet
,我会告诉你,你的温度曲线似乎是强烈的 1d。你是否碰巧在垂直壁和均匀(即恒定)边界上有周期性边界条件水平方向的条件?)
我已经通过有限差分求解八度热方程,并生成了以下 3-D 图,其点颜色对应于我的三维汉堡包中每个元素的温度。
我的计算资源限制了我解决汉堡的分辨率。因此,获得我想要的情节的唯一方法是让我的 scatter3 点变成巨大的颜色斑点,它看起来有点糟糕。
[x,y,z] = meshgrid(1:nx,1:ny,1:nz) % Defines a grid to plot on
scatter3(x(:), y(:), z(:), 40, burgermatrix(:), 's', 'filled')% Point color=value
我要的是像这样漂亮华丽光滑的直角棱镜:
所以我想我需要以某种方式在我拥有的 3D 点之间进行插值。谁能帮我弄清楚该怎么做?
我可能遗漏了一些明显的东西,但这是八度 help slice
的示例:
[x, y, z] = meshgrid (linspace (-8, 8, 32));
v = sin (sqrt (x.^2 + y.^2 + z.^2)) ./ (sqrt (x.^2 + y.^2 + z.^2));
slice (x, y, z, v, [], 0, []);
[xi, yi] = meshgrid (linspace (-7, 7));
zi = xi + yi;
slice (x, y, z, v, xi, yi, zi);
shading interp; %addition by me
这不正是您所需要的吗?你有你的网格(x
,y
,z
),你的解决方案(T
),所以你只需要绘制它沿着 [0 0 1]
等切片。像
[xi yi]=meshgrid(unique(x),unique(y));
slice (x, y, z, T, xi, yi, max(z(:))*ones(size(xi)));
沿其他两个轴的切割也是如此。 (显然,unique
调用应该替换为您首先从中构建 3d 网格的向量。)
注意: 顺便说一句,您真的应该考虑更改默认 (jet
) 颜色图。我昨天被一位同事启发了 SciPy 人制作的 viridis
colormap,例如 this post and video link therein. Their reasoning is overwhelming, and their colormap is beautiful. This should define it: viridis,虽然我自己还没有尝试过。
(如果不是jet
,我会告诉你,你的温度曲线似乎是强烈的 1d。你是否碰巧在垂直壁和均匀(即恒定)边界上有周期性边界条件水平方向的条件?)