矩阵内的计算,内部参考固定在R中矩阵内的列上
我有一个矩阵,我想对矩阵中的每一个数字进行计算,这样我就可以得到另一个只有计算结果才具有相同维数的矩阵。这应该很容易,但等式的一部分取决于我访问的列,因为我需要对该列中第[3,]行的数字进行内部引用 我想应用的公式是:矩阵内的计算,内部参考固定在R中矩阵内的列上,r,matrix,calculated-columns,R,Matrix,Calculated Columns,我有一个矩阵,我想对矩阵中的每一个数字进行计算,这样我就可以得到另一个只有计算结果才具有相同维数的矩阵。这应该很容易,但等式的一部分取决于我访问的列,因为我需要对该列中第[3,]行的数字进行内部引用 我想应用的公式是: 输出矩阵值=给定位置的输入矩阵值+(1-(在[3]处的矩阵值,与输入矩阵值在同一列中)) 例如,对于矩阵中的(1,1),计算将为1+(1-3) 对于矩阵中的位置(1,2),计算值为5+(1-7) 我试过这样做: [,1] [,2] [,3] [1,] -1 -
输出矩阵值=给定位置的输入矩阵值+(1-(在[3]处的矩阵值,与输入矩阵值在同一列中))
例如,对于矩阵中的(1,1),计算将为1+(1-3)
对于矩阵中的位置(1,2),计算值为5+(1-7)
我试过这样做:
[,1] [,2] [,3]
[1,] -1 -1 -1
[2,] 0 0 0
[3,] 1 1 1
[4,] 2 2 2
output_matrix<-apply(input_matrix,c(1,2), function(x) x+(1-(input_matrix[3,])))
output\u matrix我认为这应该适合您:
apply(input_matrix, margin = 2, function(x) x + (1 - x[3]))
[,1] [,2] [,3]
[1,] -1 -1 -1
[2,] 0 0 0
[3,] 1 1 1
[4,] 2 2 2
我认为这应该适合你:
apply(input_matrix, margin = 2, function(x) x + (1 - x[3]))
[,1] [,2] [,3]
[1,] -1 -1 -1
[2,] 0 0 0
[3,] 1 1 1
[4,] 2 2 2
我们也可以用矢量化的方式来实现
input_matrix + (1 - input_matrix[3,][col(input_matrix)])
# [,1] [,2] [,3]
#[1,] -1 -1 -1
#[2,] 0 0 0
#[3,] 1 1 1
#[4,] 2 2 2
我们也可以用矢量化的方式来实现
input_matrix + (1 - input_matrix[3,][col(input_matrix)])
# [,1] [,2] [,3]
#[1,] -1 -1 -1
#[2,] 0 0 0
#[3,] 1 1 1
#[4,] 2 2 2
这工作做得很好!非常感谢你!这工作做得很好!非常感谢你!