我是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
}
答案 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
}
但是你不清楚哪些(如果有的话)答案是正确答案。索引很棘手:)