【问题标题】:Discretizing/binning of N-dimensional data in Matlab for visualization purposes在 Matlab 中对 N 维数据进行离散化/分箱以实现可视化
【发布时间】:2018-05-11 03:05:00
【问题描述】:

这个真让我头疼……

我有一个由 X 组粒子组成的数据集,每组粒子都有一些特定于组的属性。这些组中的每一个都包含一定数量的具有给定速度分布的粒子,并且每个粒子都沿某个方向飞行。我正在跟踪粒子的位置作为时间的函数。现在,我想利用这些数据进行一些有意义的可视化。

为简单起见,我们假设速度已被分箱到 N 个箱中,并且每个速度箱中的粒子数始终相同。此外,假设我只查看 w.r.t 的绝对距离。原点(即位置变为单个值)。

我将这个简化案例的位置数据存储在 3D 数组中的 T 个时间步长 (T x N x X )。我已经离散化了我的位置数据,以便所有值现在都是等距网格上的点。现在我正在寻找可视化例如在给定时间每个位置的粒子总数使用例如hist3surf

基本上,我要做的就是计算每个时间步长的每个离散位置的出现次数。虽然我可以简单地循环遍历时间步来获得计数,但我希望有一个更优雅的解决方案来解决这个问题!

【问题讨论】:

    标签: matlab data-visualization n-dimensional


    【解决方案1】:

    为了收集数据,您可以在每个时间步使用函数histcounts,将您的离散箱指定为“边”。

    [N,edges] = histcounts(X,edges)
    

    在绘制数据时,我认为您无法将 T x N x X 绘制为 3-D 图,因为您有四个变量(时间、速度、组、位置)。您可以将可视化拆分为每组的图,您可以为此绘制每个时间/速度组合的位置计数的表面图。

    【讨论】:

    • 是的,这就是我目前正在做的事情。希望有更优雅的直接操作,这样我就可以避免存储所有中间数据,但我想我必须解决在我的时间循环中添加分析或在之后循环结果。不过还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多