如何在对角线中找到反射值的索引?

问题描述 投票:0回答:1

我在一维数组中创建了一个逆矩阵,我想找出如何在对角线上得到反射值的索引。

例如:假设我找到了值(值:1),我也知道这个值的索引(索引:1)。如何找到此值的第二个索引?假设可以重复逆矩阵中的值。

const matrix: number[] = [0, 1, 2, 3, 1, 0, 4, 5, 2, 4, 0, 6, 3, 5, 6, 0];

enter image description here

algorithm matrix matrix-inverse
1个回答
2
投票

它是逆矩阵还是对称矩阵?我相信你所展示的是一个对称矩阵。

矩阵逆定义为:

如果A*B = I然后BA的逆,其中I是单位矩阵。

让我们假设您创建了一个对称矩阵,这种矩阵的属性是:

为每个(i,j) -> A(i,j) == A(j,i)

现在给定您将矩阵表示为一维数组,索引k处的元素可以转换为其对应的(i,j)位置,如下所示:

i = k / C

j = k % C

其中C是列数

并且位置(i, j)可以转换为其相应的一维位置:

k = i*R + j

其中R是行数。

现在要获得(i,j)给定k的对称值,首先将k转换为(i,j),然后将(j,i)转换为k的新值

newK = j*R + i

例如对于k = 1对应的(i,j) = ( 1 / 4, 1 % 4) = (0, 1)

newK = 1*4 + 0 = 4

对于k = 6对应的(i,j) = ( 6 / 4, 6 % 4) = (1, 2)

newK = 2*4 + 1 = 9

对于k = 15对应的(i,j) = ( 15 / 4, 15 % 4) = (3, 3)

newK = 3*4 + 3 = 15

对于k = 5对应的(i,j) = ( 5 / 4, 5 % 4) = (1, 1)

newK = 1*4 + 1 = 5

任何落在对角线上的东西本身就是。

© www.soinside.com 2019 - 2024. All rights reserved.