gpt4 book ai didi

java - 在java中存储矩阵并比较它们

转载 作者:行者123 更新时间:2023-12-01 11:17:57 25 4
gpt4 key购买 nike

我需要存储许多矩阵,然后通过检索最后添加的矩阵和前一个矩阵来比较其中一些矩阵。

我使用以下方法创建这些矩阵:

int[][] matrix = new int[10][10];

我的矩阵只有 0、1 和 2。我想根据每个位置的值比较矩阵。就我而言,只要至少一个位置具有不同的值,两个矩阵就是不同的。每个矩阵都是根据通过 Reivision 检测到的元素创建的。没有移动的元素是2,添加的元素是1,没有的元素是0。

例如:

1 2 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

会有所不同。

存储的矩阵数量不固定。如果我已经创建了 10 个矩阵,存储这些矩阵并能够比较它们的最有效方法是什么?

我在 StackOverFlow 和其他论坛上搜索过此内容,但找不到任何答案

最佳答案

由于矩阵中的许多(也许是大多数)条目都是零,因此按原样存储它们的效率很低。。您需要使用稀疏矩阵表示。 Here is a pretty exhaustive list of matrix libraries ,其中许多允许稀疏表示。

它们中的大多数也已经有一个 equals() 方法,您可以重写该方法以适合您的定义(或者不重写,如果它们的定义已经与您的定义相同)。

最后,由于您只需要比较最后两个矩阵,因此需要某种队列。我会维护一个列表,并使用 ListIterator为此。

关于java - 在java中存储矩阵并比较它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31569320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com