我们可以使用线性索引来访问矩阵,它遵循以下模式:
0 1 2
3 4 5
6 7 8
对于这种情况(n是矩阵维度),很容易获得i,j坐标。对于基于0的索引,应为:
i = index / n
j = index % n
那么,如果我的矩阵是对称的,我只想访问上半部分怎么办?
0 1 2 3
.. 4 5 6
..... 7 8
........ 9
我知道线性索引将由下式给出:
index = j + n * i - i (i-1) / 2
但我想知道给定idx时的i,j。你们知道实现这个的方法吗?我在这里查找了一下,但没有找到答案。提前致谢。
0 1 2
3 4 5
6 7 8
对于这种情况(n是矩阵维度),很容易获得i,j坐标。对于基于0的索引,应为:
i = index / n
j = index % n
那么,如果我的矩阵是对称的,我只想访问上半部分怎么办?
0 1 2 3
.. 4 5 6
..... 7 8
........ 9
我知道线性索引将由下式给出:
index = j + n * i - i (i-1) / 2
但我想知道给定idx时的i,j。你们知道实现这个的方法吗?我在这里查找了一下,但没有找到答案。提前致谢。
triu
函数吗?或者您真的只需要这些索引而不是上三角矩阵吗?为什么同时标记c++和Matlab?你到底在寻找什么? - horchlerind2sub
的函数,你可以试一下。 - JustinBlaber