首页 > 解决方案 > 1./diag(A) 是什么意思?

问题描述

所以我正在尝试研究用 MATLAB 编写的代码。还有这两行奇怪的代码,我似乎无法理解,也许有人可以帮助我?我是 MATLAB 新手,我大部分时间都在用 C# 编写代码。

据我所知 diag(A) 意味着它需要矩阵 A 的主对角线的成员。但是该线的其他部分呢?尤其是1./操作,它有什么作用?

在下面的代码中

A 是一个 4x4 矩阵,它存储 double 类型的值,b 是系数向量,alpha 是一个自由选择的向量 (10, 5, 4, 2)。

Atld=diag(1./diag(A))*A-diag(alpha)
btld=diag(1./diag(A))*b

标签: matlabmatrixvectordiagonal

解决方案


diag(A)返回一个向量,其中矩阵的对角元素A
./是元素除法运算符,因此1./diag(A)反转该向量中的元素。
diag(1./diag(A))从该向量返回对角矩阵

所以,基本上,diag(1./diag(A))是一个矩阵,A其对角线上的对角线的倒数,其他地方为零。


推荐阅读