R语言调用inv()求矩阵逆报错,需安装哪个包?
解决R语言中
inv()函数找不到的问题 刚碰到Error in inv(A) : could not find function "inv"这个报错很正常,因为R的基础包里面根本就没有内置inv()这个函数来计算矩阵逆矩阵。
如果你就想用inv()这个函数名来实现需求,有两个常用的包可以选:
matlib包:专门做矩阵相关教学和计算的包,里面的inv()函数就是用来计算普通矩阵逆的pracma包:这个包复刻了很多Matlab里的函数,其中就包含inv()
下面给你具体的操作步骤:
方法一:用matlib包
- 先安装包(只需要安装一次):
install.packages("matlib")
- 加载包并运行你的代码:
library(matlib) # 定义矩阵A A <- matrix( c(5, 1, 0, 3,-1, 2, 4, 0,-1), nrow=3, byrow=TRUE) # 计算行列式 det(A) # 计算逆矩阵 (AI <- inv(A))
方法二:用pracma包
- 安装包:
install.packages("pracma")
- 加载包并使用:
library(pracma) A <- matrix( c(5, 1, 0, 3,-1, 2, 4, 0,-1), nrow=3, byrow=TRUE) det(A) (AI <- inv(A))
额外小提示
其实不用装任何额外包也能计算矩阵逆,R基础包自带的solve()函数就能搞定,用法是(AI <- solve(A)),效果和inv()完全一样,要是不想折腾装包的话可以试试这个方法。
内容的提问来源于stack exchange,提问作者Muhammad Faheem Sajjad




