让我们假设我有以下矩阵叫做 matrix1
[,1] [,2] [,3]
[1,] 1.5 1.5 1.5
[2,] 2.0 1.7 0.9
[3,] 2.2 2.3 1.4
我想创建一个结果矩阵,如下所示:
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0.5 0.2 -0.6
[3,] 0.2 0.6 0.5
其中
result[2, ] = matrix1[2, ] - matrix1[1, ]
result[3, ] = matrix1[3, ] - matrix1[2, ]
...
并且第1行设置为等于0
任何人都有代码进行此操作吗?
此致
答案 0 :(得分:5)
如果m
是您的矩阵,请尝试:
rbind(0, diff(m))
# [,1] [,2] [,3]
#[1,] 0.0 0.0 0.0
#[2,] 0.5 0.2 -0.6
#[3,] 0.2 0.6 0.5
另一种解决方案 - 实际上是diff
的分解:
rbind(0, tail(m,-1) - head(m,-1))
# [,1] [,2] [,3]
# 0.0 0.0 0.0
#[2,] 0.5 0.2 -0.6
#[3,] 0.2 0.6 0.5