多语言展示
当前在线:1344今日阅读:155今日分享:35

Mathematica 生成准对角矩阵的三种方法

在使用Mathematica的时候,对角矩阵的生成是有内置函数的,但是准对角矩阵的生成则要自己动手。作者总结了三条非常便捷的方法,只需要寥寥几行代码即可完成。
工具/原料

Mathematica 11.0

方法/步骤
1

首先我们观察内置函数DiagonalMatrix函数。该函数要求列表必须是单层向量,如果我们尝试直接把矩阵放进去就报错。我们无法直接用该函数生成准对角矩阵。

2

方法1(♥♥♥♥):使用替换 /.首先,我们先用几个未定义符号m1,m2,m3等等来代替对角线元素,然后使用 /. 后面跟一个替换规则的列表来实现。如图。

3

接着,我们使用ArrayFlatten自动把0变成零矩阵。该函数详细用法可查阅帮助文档。如图,完成目标。

4

方法2(♥♥):使用Table重新构造我们的矩阵列表。myMatrixs是我们希望放在对角线上的矩阵列表,我们取出每个元素,在前后补恰当个数的0.

5

方法3(♥♥♥♥♥):使用ToString和ToExpression,发挥解释型语言的优势。核心代码只需要两行。首先使用Table生成一个字符串列表{'myMatrixs[[1]]', 'myMatrixs[[2]]', 'myMatrixs[[3]]'}接着使用DiagonalMatrix把这个有猫腻的向量变为对角矩阵。然后ToExpression变魔术,再ArrayFlatten即可.

注意事项

方法3非常简洁而且好用。读者也可以自己写成函数来调用。把'myMatrixs'换成ToString[形参]就可以了。

推荐信息