使用变量元素的矩阵乘法产生错误不一致的参数

时间:2015-02-28 00:19:54

标签: r indexing matrix-multiplication

我是R的新手,但需要学习。

我一直在努力创建一个带有可变元素的矩阵(在本例中为[2,2])。变量元素在第一次运行时应为4,在第二次运行时应为5(数字)。 该矩阵将乘以另一个矩阵(N0)并产生结果矩阵(结果)。 到目前为止,我只能使用for循环创建带有变量元素的初始矩阵,但是我在索引结果矩阵时遇到了问题。我试过几个版本,但这是最新版本。任何建议将不胜感激。谢谢。

numbers <- c(4,5,length.out = 2)
A <- matrix(c(1,2,3,NA),nrow=2,ncol=2)
resul <- matrix(nrow=2,ncol=1)
for (i in 1:2)         {
  A[2,2]<- matrix(numbers[i])
  N0 <- matrix(c(1,2),nrow=2,ncol=1)
  resul[i,]<- A[i,i]%*%N0
                        }

1 个答案:

答案 0 :(得分:1)

您的代码有两个不同的问题。首先是A[i,i]是1 x 1 矩阵,所以你得到一个错误,因为你乘以1 x 1矩阵 通过2 x 1矩阵(N0)。

你可以删除下标[i,i]并初始化结果 像这样的二乘二矩阵:

result <- matrix(nrow=2,ncol=1)

for (i in 1:2){
    A[2,2]<- matrix(numbers[i])
    #  a colunm vector
    N0 <- matrix(c(1,2),
                 nrow=2,
                 ncol=1)
    # note the index is on the column b/c `A%*%N0` is a column matrix
    result[,i]<- A%*%N0
}

或者您可以删除第二个下标[i,]并初始化结果 像这样的二乘二矩阵:

result <- matrix(nrow=2,ncol=1)

for (i in 1:2){
    A[2,2]<- matrix(numbers[i])
    #  a colunm vector
    N0 <- matrix(c(1,2),
                 nrow=2,
                 ncol=1)
    result[i,]<- A[i,]%*%N0
}

但是你不清楚哪些(如果有的话)答案是正确答案。索引很棘手:)