微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在处理中转置数组列表

如何解决在处理中转置数组列表

我正在尝试在 processing.js 中编写一个函数,该函数一个数组列表作为输入,其中包含 4 个类 int[] 列表,每个列表包含 4 个元素。这就是我表示矩阵的方式,数组列表中的每个列表代表一行。数组列表的索引 0 是顶行,数组的索引 3 将其列在底行。我想编写一个函数来转置这个数组列表,但我遇到了一个障碍。到目前为止,这是我的代码(注意:Z 是一个 4x4 的数组列表,其中填充了零):

ArrayList<int[]> Transpose(ArrayList<int[]> M){
  ArrayList<int[]> A=Z;
  for (int q=0; q<4; q++){
    int[] atemp={};
    for (int p=0; p<4; p++){
      int[] mtemp=M.get(p);
      int i=mtemp[q];
      append(atemp,i);
    }
    A.add(atemp);
  }
  return A;
}

当我尝试将 i 附加到 atemp 时,我的问题似乎发生了。当我在将 atemp.length 添加A 之前打印出它时,它打印的长度为 0。我不知道为什么 atemp 仍然是空的,我想知道是否有人可以帮助我理解什么正在发生以及如何解决它。

解决方法

我不是 JavaScript 专家(你用 Java 标记了这个问题,这就是我看的原因)但我认为你应该在 JS 中创建一个这样的数组:

int[] atemp = [];

使用花括号,您可能正在创建一个对象?

,

您已经发现您需要将 Card 分配为新的 name,而不是简单地对现有的再次引用。

此外,如果您只需要在 Processing.js 中使用 4x4 转换矩阵,请使用已经实现了 AArrayList 类:

PMatrix3D

应该输出:

transpose()

(您可以使用 PMatrix3D A = new PMatrix3D(); // modify A as a test A.translate(10,20,30); println("A:"); A.print(); // clone A PMatrix3D Z = A.get(); Z.transpose(); println("Z:"); Z.print(); 将转换应用到渲染器)。

请注意,ProcessingJS 已不再维护。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。