bha*_*avs 0 matlab matrix matrix-inverse diagonal
我是matlab的新手,我试图找出具有非常小值的矩阵的逆.当我试图找到逆时,我得到一个错误,说矩阵是单数.建议的解决方案之一是尝试向对角线元素添加一些元素.我知道我必须使用眼睛和诊断方法,但我无法找到正确的解决方案.
任何评论都会有所帮助.
如果你只是想添加的单位矩阵或它的倍数,以你的方形矩阵,你可以做
A_new = A_old + k*eye(size(A_old));
Run Code Online (Sandbox Code Playgroud)
A_old
你的矩阵在哪里,k
是一个倍增器.如果要为每个对角元素添加不同的值,可以执行类似的操作
A_new = A_old + diag(values);
Run Code Online (Sandbox Code Playgroud)
where values
是一个向量,其元素数量与矩阵的列数(或行数)相同A_old
.
如果您的矩阵很大,则使用内存效率会更高spdiags
:
dim_A = size(A_old,1);
A_new = A_old + spdiags(values(:),0,dim_A,dim_A);
Run Code Online (Sandbox Code Playgroud)
或者像Amro的答案一样使用线性索引.
归档时间: |
|
查看次数: |
3573 次 |
最近记录: |