我是JeongHyun。
我认为这与基本的R逻辑有关,但无论如何,我很困惑'mat'和'b'是如何解决的,因为'mat'是3乘3矩阵,'b'是1乘3矩阵。 据我所知,前矩阵的ncol和后一矩阵的nrow应该是相同的,但在这种情况下它们不相同。
x=c(1,3,5,2,5,1,2,3,8)
x
#[1] 1 3 5 2 5 1 2 3 8
mat=matrix(x,nrow=3,ncol=3,byrow=T)
mat
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 5 1
[3,] 2 3 8
b=c(10,8,3)
b
#[1] 10 8 3
solve(mat,b)
[1] -9.28 5.16 0.76
请告诉我它是如何运作的。
谢谢。
答案 0 :(得分:1)
在这种情况下,R会将向量视为列矩阵。 证明:
x=c(1,3,5,2,5,1,2,3,8)
x
#[1] 1 3 5 2 5 1 2 3 8
mat=matrix(x,nrow=3,ncol=3,byrow=T)
mat
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 5 1
[3,] 2 3 8
b=c(10,8,3)
b
#[1] 10 8 3
b<-as.matrix(b)
solve(mat,b)
[,1]
[1,] -9.28
[2,] 5.16
[3,] 0.76
b1<-t(b)
solve(mat,b1)
#Error in solve.default(mat, b1) :
'b1' (1 x 3) must be compatible with 'a' (3 x 3)