gpt4 book ai didi

language-agnostic - 如何存储对称矩阵?

转载 作者:行者123 更新时间:2023-12-03 13:54:31 25 4
gpt4 key购买 nike

在内存中存储对称矩阵的最佳方法是哪一种?

最好节省一半的空间,而又不会过多地降低结构的速度和复杂性。这是一个与语言无关的问题,但是如果您需要做一些假设,只需假设它是一种很好的古老普通编程语言,例如C或C++。

似乎有一种感觉,就好像有一种方法可以使事情简单或只是在矩阵本身很大时,对吗?

仅出于形式上的考虑,我的意思是,对于我要存储的数据,此断言始终正确

matrix[x][y] == matrix[y][x]

最佳答案

我发现许多高性能程序包仅存储整个矩阵,但随后仅读取上三角或下三角。然后,他们可能会在计算过程中使用额外的空间来存储临时数据。

但是,如果存储确实是一个问题,那么只需将n(n+1)/2元素存储在一个一维数组中即可构成上三角形。如果这使您的访问变得复杂,只需定义一组帮助器函数即可。

在C中访问矩阵matA,您可以定义一个宏:

#define A(i,j, dim) ((i <= j)?matA[i*dim + j]:matA[j*dim + i])

那么您几乎可以正常访问阵列。

关于language-agnostic - 如何存储对称矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3187957/

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