matlab - 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
解决方案
diag(A)
返回一个向量,其中矩阵的对角元素A
./
是元素除法运算符,因此1./diag(A)
反转该向量中的元素。
diag(1./diag(A))
从该向量返回对角矩阵
所以,基本上,diag(1./diag(A))
是一个矩阵,A
其对角线上的对角线的倒数,其他地方为零。
推荐阅读
- javascript - this.props.token 在 componentDidMount 中为空,但在其他函数中不为空
- plc - 从 CoDeSys 运行时执行 Linux 系统命令
- neo4j - 有没有办法插入一个额外的节点,同时将链接(各种类型)从现有节点复制到其他节点
- bit-manipulation - 如何工作搜索 sebset 算法
- python - 如何在 pandas 中做条件累积移位函数?
- scala - 为什么赋予 spark 作业的 executor 内存参数与 yarn 上分配的内存不匹配?
- scala - Spark压缩网络和瓶颈
- java - 我怎样才能让这个 encrypt-er 循环回字母表?
- html - 剪切/移除 Angular CDK 阴影覆盖的某些部分
- python - 为什么 meshgrid 输出尺寸的顺序与输入提供的顺序不同?