以变量为矩阵元素的r-矩阵代数



我知道矩阵代数可以使用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(

相关内容

  • 没有找到相关文章

最新更新