仅向矩阵的对角线元素添加一个小值
我是 matlab 的新手,我正在尝试找出具有非常小的值的矩阵的逆。当我尝试找到逆矩阵时,我收到一条错误消息,指出该矩阵是奇异的。建议的解决方案之一是尝试向对角线元素添加一些元素。我知道我必须使用眼睛和诊断方法,但我无法找到正确的解决方案。
任何评论都会有帮助。
I am a newbie to matlab and I am trying to find out the inverse of matrix with very small values. When i try to find the inverse I get an error saying that the matrix is singular. One of the solutions suggested is to try and add some elements to the diagonal elements. I know i have to use eye and diag methods but I am not able come up the correct soltion.
Any comments will be helpful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您只想将单位矩阵或其倍数添加到您的方阵中,您可以执行
以下操作,其中
A_old
是您的矩阵,k
是一些乘数。如果您想向每个对角线元素添加不同的值,您可以执行类似的操作,其中
values
是一个向量,其元素数量与矩阵的列数(或行数)一样多A_old
。会提高内存效率。
如果您的矩阵很大,则使用 spdiags as或使用线性索引(如 Amro 的答案)
If you just want to add the identity matrix or a multiple of it to your square matrix, you can do
where
A_old
is your matrix andk
is some multiplier. If you want to add a different values to each diagonal element, you can do something likewhere
values
is a vector with as many number of elements as the number of columns (or rows) of your matrixA_old
.If your matrix is large, it will be more memory efficient to use
spdiags
as:or use linear indexing like in Amro's answer.
对于方阵,您可以将其添加到对角线:
其中
values
可以是标量或由r
元素组成的向量For a square matrix, you can add to the diagonal as:
where
values
can be scalar or a vector ofr
elements