【问题标题】:Matlab, averaging y values based on x =1Matlab,基于 x = 1 平均 y 值
【发布时间】:2014-07-10 17:30:17
【问题描述】:

我无法根据 x 对应部分平均 y 值。

例如

1 5

3 4

1 6

如何根据与 x 值 1 配对来获得 5 和 6 的平均值?对于我的具体问题,我将在重复 1 之间有 98 个值,并且数组中总共有 99 个 1。

这不是很复杂,但是我用matlab已经一年多了,所以生锈让我摸不着头脑。

【问题讨论】:

  • 这是matlab 的具体问题吗?如果是这样,请删除 C++ 标签。
  • “我在c++中学习了matlab”这是什么意思?

标签: arrays matlab matrix


【解决方案1】:

这是我得到的:

x = [1, 5;
     3, 4;
     1, 6]

col1 = x(:, 1) % extract first row

col1 =

   1
   3
   1

ri = find(col1 == 1) % get row indices where 1 appears

ri =

   1
   3

mean(x(ri, 2)) % index into the second column of rows with a 1, and take average

ans =  5.5000

【讨论】:

  • 或跳过调用以查找和使用逻辑索引,mean(x(col1 == 1, 2))
  • 嗯,如果您想保存一行,请继续,这不太可能有很大的不同。 OP 表示他已经 > 年没有使用过 Matlab,所以我想澄清一下
猜你喜欢
  • 1970-01-01
  • 2021-05-11
  • 2021-01-17
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多