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

时间:2019-04-01 20:16:37

标签: algorithm matrix matrix-inverse

我已经在一维数组中创建了一个逆矩阵,我想了解如何获取对角线的反射值索引。

例如: 假设我找到了值(值: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

1 个答案:

答案 0 :(得分:2)

是逆矩阵还是对称矩阵?我相信您所展示的是对称矩阵。

矩阵逆定义为:

如果A*B = IBA的逆,其中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)的{​​{1}}的对称值,首先将k转换为k,然后将(i,j)转换为新值{{1 }}

(j,i)

例如k对应的newK = j*R + i

k = 1

对应(i,j) = ( 1 / 4, 1 % 4) = (0, 1)的{​​{1}}

newK = 1*4 + 0 = 4

对应k = 6的{​​{1}}

(i,j) = ( 6 / 4, 6 % 4) = (1, 2)

对应newK = 2*4 + 1 = 9的{​​{1}}

k = 15

任何碰到对角线的东西都是它本身。