gpt4 book ai didi

math - 将矩阵对角线转换为参差不齐的数组?

转载 作者:行者123 更新时间:2023-12-01 05:54:58 25 4
gpt4 key购买 nike

我正在尝试针对以下问题提出一个非暴力解决方案。给定一个任意大小的矩阵:

[6  0  3  5]
[3 7 1 4]
[1 4 8 2]
[0 2 5 9]

将其对角线转换为向量列表,如下所示:

(0)
(1, 2)
(3, 4, 5)
(6, 7, 8, 9)
(0, 1, 2)
(3, 4)
(5)

(在本例中从左下角到右上角工作)

除了向上迭代左列和顶行之外,是否有一种优雅的方法来完成此操作?

最佳答案

我只想编写一个小函数来将向量索引转换为矩阵索引。

假设矩阵是 NxN正方形,那么就会有2N-1向量;如果我们对来自 0 的向量进行编号至 2N-2 , 元素 k矢量 n将在 max(N-1-n+k,k) 行和列 max(n+k-N+1,k) (或者相反,行 i 、列 j 的矩阵元素将是向量 min(i,j) 的元素 N-1+j-i )。然后,每当您需要访问向量的元素时,只需将坐标从 k,n 转换为至 i,j (即将向量索引转换为矩阵索引)并访问矩阵的适当元素。您将得到一个模拟向量列表的东西,而不是实际拥有一个向量列表,从某种意义上说,它可以为您提供列表中任何向量的任何所需元素 - 这是真的一样好。 (欢迎鸭子打字 ;-)

不过,如果您要访问矩阵的每个元素,迭代可能会更快,而不是每次都进行此计算。

关于math - 将矩阵对角线转换为参差不齐的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com