gpt4 book ai didi

julia - 如何将向量从上三角矩阵转移到原始对称矩阵?

转载 作者:行者123 更新时间:2023-12-04 13:35:04 26 4
gpt4 key购买 nike

我有一个非常大的对称矩阵,名为 M .矩阵的大小M是 1000000 * 1000000。让 M[i,j]表示 i 处的元素第 1 行和 j矩阵的第 1 列 M .对称矩阵的上三角部分M被保存为一个名为 V 的向量. V = [M[1,1], M[1,2], M[2,2], M[1,3], M[2,3], M[3,3], M[1,4], M[2,4], M[3,4], M[4,4] ,..., M[1000000, 1000000]] .我有三个问题。
(1) 如何转换 VM有效率的?
(2) 如何转换V到对称矩阵的上三角部分 M有效率的?
我的意思是转换 V到另一个矩阵 W . W的上三角部分与 M 相同而 W 中的其他元素是 0。
(3) 如何转换V到对称矩阵的下三角部分 M有效率的?
我的意思是转换 V到另一个矩阵 Q . Q的下三角部分与 M 相同而 Q 中的其他元素是 0。

最佳答案

在这种情况下最有效的创建方式 M是有一个自定义类型,即 <:AbstractMatrix .这应该几乎为零开销并且不使用额外的内存。
类型类似于:

struct MyMatrix{S, T<:AbstractVector{S}} <: AbstractMatrix{S}
v::T
end
(我省略了一个构造函数,它应该检查 v 的长度是否与某个方阵的“一半”匹配)
然后你应该为你的类型定义适当的方法。他们的名单是 here在 Julia 手册中(并且根据您想要的矩阵的确切类型,它们应该以不同的方式实现)。在该部分中有一个示例,说明如何实现这样的对象。

关于julia - 如何将向量从上三角矩阵转移到原始对称矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62634053/

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