【问题标题】:4D interpolation plot with matlab of scattered data带有matlab分散数据的4D插值图
【发布时间】:2016-06-22 19:41:25
【问题描述】:

我有一组数据,其值位于某个 x、y、z 坐标。 但是,坐标不是均匀分布的。 我想插值数据并有一个 3D 插值图 其中颜色是每个 x、y、z 坐标处的插值(不是 z 的值)。

另外我应该提到我的数据被限制在空间中,我只想在接近的点之间进行插值。我有多个片状结构,我不希望在片材之间进行插值。因此,我想我需要一个点之间的距离标准。

这个 MATLAB 测试程序可以看到我的问题

x = rand(100,1)*16 - 8;
y = rand(100,1)*16 - 8;
z = rand(100,1)*16 - 8;
d = rand(100,1)*16 - 8;

散点图效果很好

scatter3(x,y,z,5,d);
colormap(jet);
colorbar;

我想要一个漂亮的表面,上面有那种颜色。 当然,上面的插值会非常糟糕,因为它是 随机点和颜色(值),但对我来说它更有意义。

关于如何实现这一点的任何想法?

编辑

我将强调我的问题的本地化性质(使用 scatter3 参见下图)。

Suever 提出的非常有趣的解决方案是在与第一张图相同的数据上使用散乱的Interpolant 给我下面的图片

谢谢你,

塞缪尔

【问题讨论】:

    标签: matlab plot 3d interpolation 4d


    【解决方案1】:

    由于您的输入数据是分散的,您将需要使用scatteredInterpolant。这允许对非均匀间隔的输入数据进行插值。

    对于您的特定数据,您可以使用类似于以下内容的内容,其中 xqyqzq 是您要对输入进行插值的点。

    S = scatteredInterpolant(x,y,z,d);
    values = S(xq,yq,zq);
    

    至于您对相邻数据定义的具体条件,您需要查看为scatteredInterpolant 提供的各种interp methods,看看它们是否满足您的需求。

    编辑

    仔细阅读后,您可能希望在常规网格上插入 both zd。如果是这样,您仍然可以通过以下方式使用scatteredInterpolant

    % First interpolate for z
    S = scatteredInterpolant(x,y,z);
    
    xrange = linspace(min(x), max(x), 1000);
    yrange = linspace(min(y), max(y), 1000);
    
    [xq, yq] = meshgrid(xrange, yrange);
    
    % These are now the interpolated z values (height of surface)
    znew = S(xq,yq);
    
    % Now we want to use x,y,z to interpolate d at the new grid points
    S = scatteredInterpolant(x,y,z,d);
    
    % Interpolate d at the new points
    dnew = S(xq, yq, znew);
    

    因此,我们将其应用于您提供的随机数据,我们可以像您所说的那样绘制表面。

    S = surf(xq, yq, znew, 'CData', dnew);
    

    原始数据点 (x,y,z) 显示为带有黑色轮廓的散点图。您可以看到数据对这些点进行了插值,并且表面的颜色应该从这些点进行插值。

    【讨论】:

    • 亲爱的 Suever,非常感谢您的解决方案。但是,鉴于问题的本地化性质,这对我的问题效果不佳。我已经相应地更新了我的问题以反映这一点。
    • @Suever 您能就以下问题提出任何解决方案吗? stackoverflow.com/questions/38981257/…
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2012-07-12
    • 1970-01-01
    相关资源
    最近更新 更多