【发布时间】:2023-03-15 10:56:01
【问题描述】:
假设我有一个二维数组,第一列仅由两个整数 1 和 2 组成:
1 5 1 7 0.5
2 4 5 6 0.1
1 9 3 4 0.6
2 8 7 2 0.2
我想从中分离出两个矩阵,这样每个矩阵的第一列都包含相同的整数(因此第一个矩阵的第一列只包含整数 1,第二个矩阵中的 2 也是如此)。
所以它会变成:
1 5 1 7 0.5
1 9 3 4 0.6
和
2 4 5 6 0.1
2 8 7 2 0.2
我不知道如何开始。我正在考虑在开始时使用计数(嗯,因为我有一个更大的矩阵,第一列中有 10 个不同的整数),然后根据每个整数的计数,我构造每个 [子] 矩阵的维度。之后,我唯一能想到的就是计数(掩码),如果该值为真,则通过 if 语句将其添加到矩阵中。
【问题讨论】:
-
您能否更清楚地了解您想要实现的目标?另外,您能否发布您已经尝试过的任何代码以及您得到的结果?
-
我只能想到用两个循环来做这件事。一个来计算每个数组的大小,另一个来分配值。
-
其实我认为有一个内在的功能,但我仍然不确定OP在寻找什么
-
不清楚您对矩阵的含义:您是指程序中的 Fortran 数组(您想在程序中从一个已经存在于内存中的数组创建多个数组),还是数字的规则排列在文件中(您有一个输入文件并想创建多个输出文件)?您提供的示例有整数和实数,如果您正在考虑第一种情况,您是否要将它们存储在同一个数组中(它必须是实数),或者您可以将它们存储在两个数组中(一个用于整数,一个用于实数)?
-
如果不清楚,请原谅。是的,我有一个输入文件,我想从中创建多个输出文件。并感谢通知他们是真实的。因为我想将它们存储在同一个数组中。