Processing 在处理过程中将二维数组转换为一维数组

Processing 在处理过程中将二维数组转换为一维数组,processing,Processing,我试图将二维数组展平为一维数组。这就是我现在拥有的。我想把我的数组展平,这样一维数组看起来像这样 int[] oneDim = {1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10, 11, 12}; 这就是我现在拥有的。我真的不知道该怎么做。感谢所有的帮助和意见 void setup() { int[][] twoDim = { {1, 2, 3, 4}, {5, 6, 7, 8},

我试图将二维数组展平为一维数组。这就是我现在拥有的。我想把我的数组展平,这样一维数组看起来像这样

   int[] oneDim = {1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10, 11, 12};
这就是我现在拥有的。我真的不知道该怎么做。感谢所有的帮助和意见

   void setup() {
   int[][] twoDim = { {1, 2, 3, 4},
                      {5, 6, 7, 8},
                      {9, 10, 11, 12} }; 

   int[] oneDim = new int[twoDim.length];
   for (int i = 0; i < twoDim.length; i++) {
      for (int j = 0; j < twoDim[i].length; j++) {
        oneDim[j] += twoDim[j][i];
      }                  
    }
   println(oneDim);
  }
void setup(){
int[]twoDim={{1,2,3,4},
{5, 6, 7, 8},
{9, 10, 11, 12} }; 
int[]oneDim=newint[twoDim.length];
for(int i=0;i
这里有一个提示:将二维映射为一维的常用公式是:
width*y+x
,其中
width
是每行中的元素数(在您的例子中,4个,由
twoDim[i]给出)。length
,假设它们都是相同的长度),“x”是列上的迭代器(
j
,在您的例子中),而
y
是行的迭代器(
i

您需要检查一维数组的大小是否足以接受
twoDim
的所有元素。它看起来不够大,至少需要
twoDim[i].length*twoDim.length
元素长

您当前正在一次又一次地写入同一行数据,因为您正在为外部循环的每个迭代在内部循环中分配给
oneDim[j]
。尝试使用我在答案开头建议的公式分配给
oneDim
(一旦大小合适)。

int[]twoDim={{1,2,3,4},
int[][] twoDim = { {1, 2, 3, 4},
                   {5, 6, 7, 8},
                   {9, 10, 11, 12} }; 
int x = twoDim.length;
int y = twoDim[0].length;
int[] oneDim = new int[x*y];
for (int i = 0; i < x; i++) {
  for (int j = 0; j < y; j++) {
    oneDim[i*y + j] = twoDim[i][j];
  }
}
println(oneDim);
{5, 6, 7, 8}, {9, 10, 11, 12} }; int x=twoDim.length; int y=twoDim[0]。长度; int[]oneDim=新的int[x*y]; 对于(int i=0;i