将矩阵转换为矢量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将矩阵转换为矢量相关的知识,希望对你有一定的参考价值。
这可能更多是数学上的问题,但这是在代码中使用的。
假设您有N x N网格或矩阵。如果您想以某种方式“拉伸”它,则将其转换为各种数组,这样,每个元素就可以像矢量一样位于彼此的右边或左边。但是您想继续通过其原始引用来引用每个元素,即row和col。您要做的是将向量中的索引除以N。它的行将是index // N,列将是索引%N。
我的问题是:如果网格为N x M,从而得到大小为N * M的数组,您将如何获得网格中每个元素的相应位置呢? ?
答案
此“伸展”称为展平。这几乎总是按行或列的顺序进行。主要行又称为C样式,主要列又称为Fortran样式。
假设您使用行优先顺序来展平M x N矩阵,其中M是行数,而N列数是行优先顺序的正确转换表达式是:
col = i % N
row = i / N
-----------
i = row*N + col
对于列主要订单,它们是:
col = i / M
row = i % M
-----------
i = col*M + row
两者都假设i
,col
和row
的索引从零开始,以及截断除法。
以上是关于将矩阵转换为矢量的主要内容,如果未能解决你的问题,请参考以下文章