我知道矩阵代数可以使用R,但我想知道在没有将向量和矩阵的元素指定为数字但指定为"的情况下,是否可以将其用于此目的;字符串";或变量。因此,也许一个例子可以帮助表达我的担忧:
我所知道的R可以做到这一点:
https://latex.codecogs.com/gif.latex?\开始{pmatrix}&空间1&空间&;空间2&空间\\&空间1&空间&;空间2&空间\结束{pmatrix}&空间*&空间\开始{pmatrix}&空间3&空间\\&空间4&空间\结束{pmatrix}&空间=&空间\开始{pmatrix}&空间11&空间\\&空间11&空间\结束{pmatrix}
我想知道的是以下在R中是否可能:
https://latex.codecogs.com/gif.latex?\开始{pmatrix}&空间a_{11}&空间&;空间a_{12}&空间\\&空间a_{21}&空间&;空间a_{22}&空间\结束{pmatrix}&空间*&空间\开始{pmatrix}&空间b_{1}&空间\\&空间b_{2}&空间\结束{pmatrix}&空间=&空间\开始{pmatrix}&空间a_{11}*b_{1}&加a_{12}*b_{2}&空间\\&空间a_{21}*b_{1}&加a_{22}*b_{2}&空间\结束{pmatrix}
有可能在R中实现这一点吗?或者有其他编程语言可以实现这一目标吗?
假设我们有以下两个字符矩阵:
a <- matrix(c("a11", "a12", "a21", "a22"), nrow = 2)
b <- matrix(c("b1", "b2"), nrow = 2)
a
#> [,1] [,2]
#> [1,] "a11" "a21"
#> [2,] "a12" "a22"
b
#> [,1]
#> [1,] "b1"
#> [2,] "b2"
我们可以使用apply
获得您想要的结果
matrix(apply(a, 2, paste, b, sep = " * ", collapse = " + "), ncol = ncol(b))
#> [,1]
#> [1,] "a11 * b1 + a12 * b2"
#> [2,] "a21 * b1 + a22 * b2"
这也应该适用于较大的矩阵:
a <- matrix(c("a11", "a21", "a31",
"a12", "a22", "a32",
"a13", "a23", "a33"), byrow = TRUE, nrow = 3)
b <- matrix(c("b1",
"b2",
"b3"), byrow = TRUE, nrow = 3)
matrix(apply(a, 2, paste, b, sep = " * ", collapse = " + "), ncol = 1)
#> [,1]
#> [1,] "a11 * b1 + a12 * b2 + a13 * b3"
#> [2,] "a21 * b1 + a22 * b2 + a23 * b3"
#> [3,] "a31 * b1 + a32 * b2 + a33 * b3"
由reprex包于2020-07-24创建(v0.3.0(