问题标签 [row-major-order]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
345 浏览

sparse-matrix - SparseMatrix<..,RowMajor> 的逆矩阵

我正在寻找一种方法来使用带有 EIGEN 3.3.4 的 RowMajor 存储来检索 SparseMatrix 的逆。我在那里找到了这个问题的答案,但我在适应我的情况时遇到了问题。

给定的方法是使用求解器和解析Ax=I(I 是身份)来检索 A 的逆。

我不明白的是:

看起来,在作者的情况下,结果solver.solve()是一个SparseMatrix对象。在我看来,它是一个Solve对象,这就是我现在遇到麻烦的原因。

我使用SimplicialLDLT如下:

哪个不起作用,因为resultSolve(我想没有<<过载)。我正在寻找的是一种方法:

目前,此转换的结果是一个错误 : THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES

问题是:如何设置 RowMajor 求解器,以及如何在可用的 RowMajor 矩阵中检索结果

提前致谢。

与 ColMajor

对求解器和 rhs 使用 ColMajor(lhs 仍然是 rowmajor,我无法更改),结果是错误的。矩阵 A 是:

代码是:

显示以下错误:

预期结果是:

我可能在那里做错了什么,但我无法弄清楚。

解决方案:将求解器更改为 SparseLU,SimplicialLDLT 仅适用于对称矩阵。

0 投票
2 回答
533 浏览

matlab - 置换矩阵在Matlab中将表示从列专业更改为行专业

我在 Matlab 中有一个二维数组需要转换为一维,而 Matlab 使用列主要表示进行转换。但是,我想使用双重随机矩阵将表示形式转换为行专业。

例如,我有以下二维数组:

如果我使用 reshape 在一维中表示它

我得到一个专栏主要代表:

但是,我想使用这样的置换矩阵:

这样我得到以下行主要表示:

通过做

我知道我可以通过这样做来获得 v2

但我特别关注生成置换矩阵以转换为行主要表示。

如果有人可以帮助我生成这个排列矩阵,那真的很有帮助。提前致谢!

0 投票
1 回答
609 浏览

c - 列主要顺序与行主要顺序的表示

考虑一个包含值的二维数组“数组”:{1,2,3,4,5,6,7,8,9}。我对这两个订单的理解的主要问题是,如果将 Row Major Order 表示为 Array[i,j] (而 i 是行,j 是列),

因此,如果您被问到诸如“在 Array[2][2] 中查找元素 Array[1,2] 的地址”之类的问题,您就会知道行数在列数之前,并且很容易将它们放入公式中:

这是否意味着列顺序可以表示为 Array[j,i] 这意味着列号出现在行号之前。因此无法知道 Array[j][i](例如 Array[3][4])的 i,j,Row_lowerbound 和 Col_lowerbound 值应放在公式中的什么位置。

例如,如果问题显示为:“在数组 Array[3][4] 中查找 Array[1][2] 的地址”您如何知道 3 是列数还是 4?你怎么知道'i'是3还是4?

0 投票
1 回答
533 浏览

haskell - 递归行主矩阵乘法

我正在编写自己的矩阵模块以供娱乐和练习(时间和空间复杂度无关紧要)。现在我想实现矩阵乘法,我正在努力解决它。这可能是我使用 Haskell 的原因,但我没有太多经验。这是我的数据类型:

它将这样的 3x2 矩阵存储在数组中:

我有一个有点工作的转置功能

要索引数组中的元素,我正在使用这个函数

据我了解,我必须为 m1: 2x3 和 m2: 3x2 获取这样的元素

现在我需要一个函数,它需要两个矩阵,rows m1 == cols m2然后以某种方式递归计算正确的矩阵。

0 投票
1 回答
584 浏览

c - 当存在连续数组时,使用 MPI 用户定义的数据类型是否无用?

在我的程序中,我向其他处理器发送矩阵的一些行,我正在用 C 编码,我知道 C 是行优先的。矩阵被分配为一维数组。

我以这种方式发送它们

我怀疑是否必须使用一些临时数据类型来确保行的连续性,例如:

0 投票
1 回答
571 浏览

javafx - (JavaFX) - 蛇和梯子游戏中的蛇迭代 2D 矩阵

我正在创建游戏“蛇和梯子”。我正在使用 GridPane 来表示游戏板,显然我想以“蛇”的方式在游戏板中移动。就像那样: http: //prntscr.com/k5lcaq

当掷骰子时,我想将'dice_num'向前移动 + 您当前的位置,因此我正在使用一维数组计算新索引,并将该索引转换为二维坐标(反向行主要顺序)。

其中gameGrid是我的网格窗格的ID,newIndex % ROWS 代表列坐标,newIndex / ROWS 代表行坐标。

问题 1:网格窗格以自己的方式迭代。就像这样: https ://prnt.sc/k5lhjx 。显然,当二维数组遇到坐标 [0,9] 时,下一个位置是 [1,0] 但我真正想要的下一个位置是 [1,9] (从 91 到 90)。

问题 2:我想从网格窗格的底部开始计数(从 1 号开始,请参见屏幕截图)并一直到 100。但是我应该如何反向迭代二维数组?

0 投票
2 回答
169 浏览

python - 什么导致numpy中C与F有序数组沿轴的数组总和不同

我很好奇是否有人能解释究竟是什么导致了numpy. 请看下面的代码:

印刷:

0 投票
1 回答
305 浏览

python - numpy 中的行专业和列专业是什么?

我是 numpy 的新手,我正在阅读 numpy,但我无法理解 numpy 中的行专业和列专业,谁能用最简单的方法举例解释?任何答案将不胜感激谢谢

0 投票
1 回答
126 浏览

opengl - pyrr.Matrix44 布局实际上是列主要的吗?

在 pyrr.Matrix 文档中它指出:

创建一个转换矩阵给了我:

如果布局主要是行,我希望输出是转置:

我很可能很困惑(我来自 C/OpenGL 背景),但有人可以启发我吗?

乔纳森

0 投票
0 回答
134 浏览

opengl - 为什么 pyrr.Matrix44 转换似乎是列优先,而旋转行优先?

考虑以下:

平移矩阵显示矩阵的布局是列优先的,但旋转矩阵令人困惑地表明它是行优先的,如果您考虑以行优先表示法读取的围绕 X 的标准右手 3x3 旋转矩阵读取:

似乎是返回的结果from_x_rotation。有谁知道这是一个错误,还是我误解了什么?