问题标签 [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 投票
4 回答
5610 浏览

python - NumPy 中行与列操作的性能

几篇文章表明 MATLAB 更喜欢列操作而不是行操作,并且根据您对数据的布局,性能可能会有很大差异。这显然是因为 MATLAB 使用优先顺序来表示数组。

我记得读过 Python (NumPy) 使用优先顺序。有了这个,我的问题是:

  1. 在使用 NumPy 时,是否可以期待类似的性能差异?
  2. 如果上面的答案是肯定的,那么有哪些例子可以突出这种差异
0 投票
4 回答
1955 浏览

python - Python行主要到列主要顺序向量

有一个像这样的矩阵

我想得到一个像这样的向量:

numpy为了尝试得到它,我正在使用reshape但它不起作用。

但我得到:

对于任何矩阵大小,最好的方法是什么?我的意思是,例如,如果矩阵不是平方的:

我想得到:

0 投票
4 回答
930 浏览

c - 列与行的二维数组初始化

如果我有一个 3 行 5 列的数组,如下所示:

现在我想输入一些数字,所以我喜欢这样:

现在数组设置如下:

但我想要的是实际上数组中的第一列元素设置如下:

我如何交换或更改数组顺序是这样的?

0 投票
1 回答
275 浏览

matlab - 如何从 Matlab 中的行主向量中获取矩阵?

我有以下矩阵:

我现在将矩阵转换为向量,但以行为主。这给出了以下向量:

现在我想把这个向量变成和上面一样的矩阵。问题是这reshape(matrix,[3,5])不起作用,因为 Matlab 以列为主。

如何有效地做到这一点(对于大型矩阵)?

0 投票
0 回答
282 浏览

c - Can you call qsort on section of an array/matrix (row major order)?

Can you call qsort on section of an array or matrix in row major order?

I would like to call qsort on separate parts of an array within pthreads, is this thread safe and okay to do?

I am working on separating the given array or matrix by the amount of threads or cores given as a global variable n_threads and then calling qsort on each section in the same arrays memory. I want to use a start value and a total values to get the start and end index of the qsort function.

0 投票
1 回答
2335 浏览

multidimensional-array - Rust 多维数组行是否主要且紧凑?

我正在为我的项目编写一个 3D 数学库,我想知道 Rust 是列专业还是行专业?例如,我有一个二维数组作为矩阵,我想将它提供给 C 库(如 OpenGL 或 Vulkan),对于这些库来说,拥有一个紧凑的列主数组很重要。

0 投票
1 回答
58 浏览

arrays - 在 MATLAB 中,对于 2D 数组,我如何获得将首先迭代另一个维度的索引

我有一个算法,它使用单个索引填充 2x3 子图数组i=1:6

根据文件,

subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置为子图创建轴。MATLAB® 按行对其子图进行编号,这样第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。

因此,当使用 迭代 2x3 子图数组时i=1:6,将导致以下行主要顺序:

如果我想以列优先顺序填充子图,我必须将我的索引 1 2 3 4 5 6 转换为 1 4 2 5 3 6。

我怎样才能做到这一点?

0 投票
1 回答
297 浏览

python - dtype 如何影响 Numpy 中的行和列操作速度?

我试图了解如何最好地利用 numpy 数组的 C 排序来编写高性能代码。我的期望是遍历行的操作应该比遍历列的操作更快。事实上,这对于我尝试的第一个示例是正确的:

这会产生输出:

这是我所期望的,因为沿行求和应该比沿列求和更快。

这是我非常困惑的地方。如果我将 dtype 更改为 float64,那么列操作的速度几乎是行操作的两倍:

产生输出:

有人可以澄清为什么会这样吗?

编辑:评论中建议我使用较小的矩阵(1000,1000)再次尝试。当我运行时:

我得到输出:

所以效果是持久的。

0 投票
0 回答
300 浏览

c++ - 使用行主矩阵时奇怪的特征矩阵乘法行为

以下对我来说工作得很好:

但是,由于这将用于 OpenGL,并且我不喜欢处理转置,但我可以简单地切换到行主矩阵:

不幸的是,一切都破裂了。有趣的是,反转最终的矩阵乘法(这是错误的)解决了这个问题:

几乎就好像 eigen 在假设存储是列主要的情况下执行矩阵乘法,而不管我的模板标签是什么,但这不可能。

我分别测试了两个矩阵,并且在单独使用时它们在行优先模式下按我想要的方式执行,只有两个矩阵的乘积是错误的。

我对 Eigen 处理行主矩阵的方式有什么不理解?

编辑

这是我将数据发送到 OpenGL 的有效方法。我的代码有很多额外的样板,但归结为:

和 glsl:

0 投票
0 回答
118 浏览

c++ - 逆离散傅里叶

显然我的代码有些问题,但是经过一天的搜索,我不知道如何继续。

输出灰度图像

输出看起来像是计算了正确的像素值,但存储在错误的位置。传递给该方法的两个指针都指向一个 Vector 对象,该对象具有相同的大小并且采用 row mayor 布局。那么指数公式(k*M+l)应该是对的吧?

M是宽度,N是图像的高度。

谢谢!