如何使用算法从矩阵中 select 列

How to select columns from a matrix with an algorithm

我正在 python 中编写一个用户定义的函数,以有效地从矩阵中提取特定的列块。

我的矩阵是 48 x 16240。数据以某种模式按列组织。
我的 objective 是用它制作 4 个矩阵。通过select前70列提取第一个矩阵,跳过接下来的210列,select接下来的70列,跳过接下来的210列,直到矩阵结束。

通过 select 提取第二个矩阵的第二个 70 列,跳过下一个 210,select 下一个 70,跳过下一个 210,直到矩阵的末尾。

第三个和第四个矩阵分别通过select提取第三个和第四个70列,方法与上述相同。

可以看出,16240 可以被 70 整除。

有没有办法有效地完成这项工作?

列索引i应满足0 =< i modulo (210+70) <= 70-1

以下是我将如何遍历您要处理的每个列索引:

public static void main(String... args) {
    int blocks = 16240 / 280;
    // process each 280 column block...
    for (int i = 0 ; i < blocks ; i++) {
        // process the first 70 columns of the block
        for (int j = 0 ; j < 70 ; j++) {

            // Compute the column index
            int s = i * 280 + j;

            // Process the column with index 's' here
            System.out.println(s);
        }
    }
}

结果列索引的摘要:

0
1
2
...
67
68
69
280
281
282
283
...
348
349
560
561
562
...
627
628
629
840
841
842
...
...
15748
15749
15960
15961
15962
...
16028
16029

单...是遗漏连续的数字。 double ... 是省略全数输出的中间部分。