【问题标题】:Grouping Data in a Matrix in MATLAB在 MATLAB 中对矩阵中的数据进行分组
【发布时间】:2013-09-15 18:56:14
【问题描述】:

我有一个非常大的矩阵,我应该“升级”(即:创建另一个矩阵,其中第一个矩阵的元素按 40×40 分组)。对于每个 40×40 组,我应该评估一系列参数(即:频率、平均值和标准差)。

我很确定我可以用循环做这样的事情,但我想知道是否有更优雅的矢量化方法......

【问题讨论】:

  • 究竟什么是“创建另一个矩阵,其中第一个矩阵的元素按 40×40 分组”。你的意思是一个大小为 40x40xN 的三维数组吗?您可以为此使用reshape
  • 将矩阵视为 M*N 像素的图像,我基本上想创建一个分辨率较低的“图像”,其中新图像的每个像素由旧矩阵的 40 个元素组合而成...

标签: matlab matrix grouping


【解决方案1】:

您可能会发现blockproc 很有用。此命令允许您将函数(例如 @mean@std 等)应用于 2D 矩阵中的每个不同块。

【讨论】:

  • +1 如果您需要在 40x40 块上应用多个功能,也许您还可以使用相关的im2col 功能:重新整形为列,应用多个功能(最好以矢量化方式) , 将结果重新排列成缩小的图像
  • Blockproc 看起来很棒!除了应用函数之外,它还可以对元素进行分组吗?或者我可以用“组”功能或类似的东西对它们进行分组吗?也许我可以自己编写脚本...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 2012-05-16
  • 2015-07-10
相关资源
最近更新 更多