当前位置: 首页 > 知识库问答 >
问题:

等于零的点的矩阵总和的r平均值

葛越泽
2023-03-14

A=矩阵(c(1,2,3,0,2,2,0,2,3),nrow=3,ncol=3)

[,1] [,2] [,3]
[1,]    1    0    0
[2,]    2    2    2
[3,]    3    2    3

B=矩阵(c(1,2,3,1,4,2,2,1),nrow=3,ncol=3)

[,1] [,2] [,3]
[1,]    1    1    2
[2,]    2    4    2
[3,]    3    2    1

C=A B/(总和差为零)

C=矩阵(c(1,2,3, 1, 3, 2, 2,2 ,2),nrow=3,nco=3)

    [,1] [,2] [,3]
[1,]    1    1    2
[2,]    2    3    2
[3,]    3    2    2

我需要对N个矩阵的列表执行此操作(mat_vect[[I]]):

list_mat_vect[[i]] <- assign(paste("a", i, sep = ""), mat_vect[[i]])

求和矩阵并得到平均值

mat_sum_mean = Reduce("+", list_mat_vect) / length(file_list) 

这里是所有数字的除法,包括零。我不想那样。

共有1个答案

李谦
2023-03-14

你可以做的

(A+B)/((A!=0) + (B!=0))

为了得到

     [,1] [,2] [,3]
[1,]    1    1    2
[2,]    2    3    2
[3,]    3    2    2

这里<代码>!=使用零返回TRUE或FALSE的相等性测试。当我们把这些加起来时,TRUE被视为1,FALSE变成0。

你也可以用矩阵列表来做这件事

list_mat_vect<-list(A,B)
Reduce("+", list_mat_vect) / Reduce("+", lapply(list_mat_vect, function(x) x!=0))
 类似资料:
  • 你有一个整数数组。您必须找到子阵列的数量,该数量意味着(这些元素的总和除以这些元素的计数)舍入为零。我已经用O(n^2)时间解决了这个问题,但效率不够。有办法吗?

  • 假设我们有两个矩阵,即和,分别为和。 我们如何才能找到哪些行与行相同(反之亦然)? 优选的输出是矩阵,其行数等于矩阵和之间的标识行,两列,即第一列包含矩阵的行数,第二列包含矩阵的行数。

  • 这是我的代码,它不起作用: 我已经做了一个星期了,还是搞不清楚。我不确定在这里发布是否合适,但欢迎任何形式的帮助。

  • 我想让一个函数包含三个参数 二维数组。(整数数组[行][列]) 整数。(int n) 数组[i][j]的地址。 表示我的函数原型应该像这样 功能说明 > 第一个参数是2D数组,表示要处理的数据。 这里的代表n×n矩阵,是指需要所有元素平均的方阵的维数。 最后一个参数是子矩阵第一个元素的地址。 样本输入 例如,我们取3x3矩阵, 我要计算子矩阵 输出 则函数将返回8.25,即(8+7+9+9)/4。

  • 我试图通过DP找到所有子数组的加权平均值,然后按列排序,找到长度相同的2。但我无法继续下去,我的方法似乎太模糊/太粗暴了。我将非常感谢任何帮助。提前谢了。

  • 在matlab中,我有一个非负数项的矩阵a。见以下一条: 我想找到所有零元素的邻居,除了零元素。这意味着我想在向量v中存储a(1,1),a(2,5),a(3,1),a(3,6),a(4,5)和a(5,1)的邻居,如果这些邻居中的一个是零,那么我就不存储它。 所谓元素(i,j)的邻居,是指离(i,j)远一个元素的元素,即A(i,j+1)、A(i,j-1)、A(i-1,j)、A(i-1,j-1)、A(