说我有一个矩阵:
1 0 0 0
0 2 0 6
0 0 3 0
我有索引11(代表上面矩阵中的数字3
)。我想出了如何找到该索引的行:从索引中减去矩阵中的列数,直到它的负数或零,并且减去的数量是行。在伪代码中:
numCol = 4
index = 11
temp = index
count = 0
while (temp > 0) {
temp -= numCol
count++
}
curRow = count
就我的例子而言,index = 11
因此将{3}从temp
中删除,因此该行为3
现在如何获取该列?
我正在使用ARM程序集,矩阵存储如下:
.data
.align
MatA: .word 2, 0, 0, 0, 0, 2, 0, 6, 0, 0, 3, 0
.end
答案 0 :(得分:1)
在您完成行后,添加回列数,然后留下列号。
答案 1 :(得分:1)
分区和模数:
row = index / numCol;
col = index % numCol;
对于你的矩阵:
row = 10 / 4 = 2; (zero indexed)
col = 10 % 4 = 2; (zero indexed)
通过重复的减法方法:
numCol = 4;
index = 10; // (zero-indexed)
temp = index;
count = 0;
while (temp > numCol) {
temp -= numCol;
count++;
}
curRow = count;
curCol = temp;