matlab - 一行中除元素本身以外的所有元素的平均值 - MATLAB

标签 matlab matrix calculated-columns

对于给定的矩阵 A,我如何创建一个大小相同的矩阵 B,其中每一列都是所有其他列的平均值(或任何其他函数)?

例子:

上的一个函数
A = [
     1     1     1
     2     3     4
     4     5     6]

应该导致

B = [ 
      1   1  1 
      3.5 3 2.5
      5.5 5 4.5]

最佳答案

bsxfun 的完美设置 -

B = bsxfun(@minus,sum(A,2),A)./(size(A,2)-1)

说明:将其分解为两步

给定

>> A
A =
     1     1     1
     2     3     4
     4     5     6

第 1 步:对于 A 中的每个元素,计算除元素本身之外的所有元素的总和 -

>> bsxfun(@minus,sum(A,2),A)
ans =
     2     2     2
     7     6     5
    11    10     9

第 2 步:将每个元素结果除以负责求和的元素数量,即列数减去 1,即 (尺寸(A,2)-1) -

>> bsxfun(@minus,sum(A,2),A)./(size(A,2)-1)
ans =
    1.0000    1.0000    1.0000
    3.5000    3.0000    2.5000
    5.5000    5.0000    4.5000

关于matlab - 一行中除元素本身以外的所有元素的平均值 - MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276163/

相关文章:

tsql - 计算列 - 作为主键

join - 使用计算列作为 Spotfire 中的键从另一个表插入列

matlab - 绘制没有显式变量名的匿名函数

matlab - 如何使用 surf 可视化 3d 场景

matlab - 为什么我不能使用开机功能?

matrix - 如何在 F# 中混洗 "DenseMatrix"

matlab - 是否有可能在 Matlab 中获得对矩阵的引用?

r - 根据两个坐标之间的最近距离对矩阵进行排序

java - 求两个矩阵的 boolean 积

python-3.x - 在python pandas中基于df值比较创建派生字段