【发布时间】:2020-07-06 14:12:32
【问题描述】:
我有一个矩阵
A <- matrix(1:16, nrow = 4, ncol = 4, Byrow = FALSE)
我想要矩阵 A 的逐行差分。即取 A 的第一行和第二行之间的逐元素差分,A 的第二行和第三行之间的逐元素差分,等等。因为 A ∈ R4× 4,生成的矩阵应包含维度为 3 × 4 的逐行差异。
我不想使用 for 循环遍历 A 的行并获取连续行之间的差异,我想使用离散差分运算符来加快运算速度。我使用 sapply() 构造这个矩阵差分算子 B。然后使用 B × A 计算逐行差分。
假设矩阵 B ∈ R3×4
B <- matrix(c( -1, 1, 0, 0,
0, -1, 1, 0,
0, 0, -1, 1), nrow = 3, ncol = 4, byrow = TRUE)
预期的输出是一个全为 1 的矩阵 C ∈ R3×4。
Result_C <- matrix(c( 1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1), nrow = 3, ncol = 4, byrow = TRUE)
我应该如何进行? R中矩阵的差分运算符是什么?
【问题讨论】:
-
不清楚使用
B计算“A”差异。为什么我们不能只做diff(A)
标签: r matrix matrix-multiplication