【问题标题】:Calculate the average of elements in a matrix that correspond to a value in a separate matrix计算矩阵中与单独矩阵中的值相对应的元素的平均值
【发布时间】:2015-04-13 15:17:55
【问题描述】:

我有一个 333 x 333 的邻接矩阵,它由我想根据每个单元格的标识进行平均的值组成,该标识在单独的 333x1 向量中定义。第二个向量中总共定义了 13 个不同的组,因此理想情况下,我可以计算一个新的 13 x 13 矩阵,其中每个单元格都包含较大矩阵中相应值的平均值。

matrix_1: 333 x 333 --> 包含每个成对交互的值

vector_2: 333 x 1 --> 包含 matrix_1 中每个元素的标识(范围:1 - 13)(行和列中的元素相同)

ideal output = matrix_2: 13 x 13 --> 包含每个单元格中的值,这些值反映了特定身份比较的所有示例的平均分数。

例如matrix_2(1,1) --> 应该包含 matrix_1 中所有 1 到 1 个值的平均分数

例如matrix_2(1,2) --> 应该包含来自 matrix_1 的所有 1 到 2 个值(和 2 到 1 个值)的平均分数

提前致谢

苹果机

【问题讨论】:

  • 所以这是一个上/下/对称矩阵?
  • 是的,它是一个对称矩阵

标签: matlab


【解决方案1】:

我不能 100% 确定您的描述,但我猜您想要:

[I,J] = ndgrid(V);
out = accumarray([I(:),J(:)], M(:), [], @mean);

【讨论】:

  • 看起来你最近进入accumarray :-)
  • @LuisMendo:几周前我从你的一个答案中得知,这位美女可以通过细胞输出生成的子集,我终于迷失在她美丽的棕色眼睛中,想赚点小钱@ 987654324@- 和array- 和她一起玩!
  • @knedlsepp 哈哈哈。好的。但是不要管bsxfun,否则...... :-D
  • @rayryeng:你是correct! (搜索morph
  • @knedlsepp - 哦 :) 呵呵。好吧,部分原因是我偏向于meshgrid,因为我已经使用它很长时间了,直到我开始在这里回答之前我才知道ndgrid 的存在。你在这个网站上学到的东西是吗?是的,有时候我无法得到一个 MATLAB 问题的答案,因为当你提供了真正好的答案时,或者 Luis 或 Divakar 等。所以我冒险进入图像处理和 OpenCV 标签来获得我的代表点:P顺便说一句,这里的答案很好!忘记点赞了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
相关资源
最近更新 更多