gpt4 book ai didi

c++ - 将上三角矩阵转换为完整矩阵 C++

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:57 26 4
gpt4 key购买 nike

可以将上三角矩阵转换为完整矩阵的代码看起来如何。矩阵在一个 vector 中,而不是在一个二维数组中...

所以数组

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

会变成这样的数组:

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

你能提供一些想法吗,我正在考虑应用一种模块或其他东西......

有一个限制,我没有使用二维数组我用的是 vector ,所以是一维数组

最佳答案

首先,您必须了解反射矩阵的基本性质。对于任何ij,以下断言为真:

m[i][j] ≡ m[j][i]

因此,您需要一些算法来实现这一点。我可以建议:

for(int i = 0; i < HEIGHT; ++i)
for(int j = 0; j < i; ++j)
m[i][j] = m[j][i];

注意第二个循环的情况。通过确保 j 始终小于 i,我们将事件限制在左下三角形。

接下来,您必须了解如何在一维数组中实现二维矩阵。看来您已经确定了身份:

m[i][j] ≡ v[i*WIDTH+j]

代入,我们有:

for(int i = 0; i < HEIGHT; ++i)
for(int j = 0; j < i; ++j)
v[i*WIDTH+j] = v[j*WIDTH+i];

关于c++ - 将上三角矩阵转换为完整矩阵 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701981/

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