您现在的位置是:主页 > news > 网站建设hyioi/短信广告投放软件
网站建设hyioi/短信广告投放软件
admin2025/6/5 8:33:26【news】
简介网站建设hyioi,短信广告投放软件,wordpress 设置缓存,今日新闻简讯30条在线性代数课程中,我们一般只需要对二维矩阵进行转置,这是非常简单的。但在编写代码时,我们可能遇到高维(三维、四维等)矩阵转置的问题,那么此时该如何对其进行转置呢?最关键的地方,…
在线性代数课程中,我们一般只需要对二维矩阵进行转置,这是非常简单的。但在编写代码时,我们可能遇到高维(三维、四维等)矩阵转置的问题,那么此时该如何对其进行转置呢?最关键的地方,就是搞清楚在转置过程中,什么位置关系是变化的,什么位置关系是不变的。下面举例说明。
三维矩阵
三位矩阵的转置比较简单,因为它的第二个维度是不发生变化的,实质上只是交换了第一个和第三个维度。
如下面这个 2×2×32\times 2\times 32×2×3 的矩阵:
[[[ 1. 2. 3.][ 4. 5. 6.]][[ 7. 8. 9.][10. 11. 12.]]]
在这个矩阵中我们称每个 2×32\times 32×3 的小矩阵为一个矩阵块,2是这个矩阵块的行数,3是这个矩阵块的列数。也就是说,对于 2×2×32\times 2\times 32×2×3 的这个大矩阵,第一个维度表示矩阵块的个数,第二个维度表示矩阵块中行的个数,第三个维度表示矩阵块中列的个数。
对它进行转置时,我们要先明确转置后的矩阵形状为 3×2×23\times 2\times 23×2×2。我们可以先把它的整体框架画出:
因为第二个维度是不发生变化的,所以每个矩阵块中的行不会变化,也就是说,1下面仍然是4,2下面仍然是5……
[[[ . .][ . .]][[ . .][ . .]][[ . .][ . .]]]
因为第一个维度和第三个维度发生了变化,所以1后面不再是2,1和4下面不再是7和10。要实现这个变化,只需要将2和5与7和10交换一下即可,这就是转置后的第一个矩阵块,如此重复,得到转置后的矩阵为:
[[[ 1. 7.][ 4. 10.]][[ 2. 8.][ 5. 11.]][[ 3. 9.][ 6. 12.]]]
四维矩阵
对于四维矩阵,我们可以先对中间两个维度进行转置,再对第一个和最后一个维度进行转置。
下面是一个形状为 2×2×2×22\times 2\times 2\times 22×2×2×2 的矩阵:
[[[[ 1. 2.][ 3. 4.]][[ 5. 6.][ 7. 8.]]][[[ 9. 10.][11. 12.]][[13. 14.][15. 16.]]]]
我们先对中间两个维度转置,这样一来第一个维度就是不变的,所以我们可以将这个矩阵分成两个形状为 2×2×22\times 2\times 22×2×2 的矩阵分别转置,然后再合并在一起。
跟对三维矩阵进行转置的步骤一样,对于每个矩阵来说,只有列维度是不变的,也就是说,1后面仍然是2,但1下面不能是3,1和3下面也不再是5和7。所以,我们只要把3和4与5和6交换一下即可,最终得到矩阵:
[[[[ 1. 2.][ 5. 6.]][[ 3. 4.][ 7. 8.]]][[[ 9. 10.][13. 14.]][[11. 12.][15. 16.]]]]
然后,我们要对第一个和最后一个维度进行转置,此时需要保证:1下面仍然是5,1和5下面仍然是3和7,1后面不再是2,1、5、3和7下面不再是9、13、11和15。所以,我们只需要将2、6、4、8与9、13、11、15交换一下即可,最终得到结果:
[[[[ 1., 9.],[ 5., 13.]],[[ 3., 11.],[ 7., 15.]]],[[[ 2., 10.],[ 6., 14.]],[[ 4., 12.],[ 8., 16.]]]]