我有几个向量要总结为矩阵数组。
vector1 = {1, 2, 3, 4, 5}
vector2 = {1, 4, 3, 6, 5}
vector3 = {8, 2, 3, 4, 5}
matrix [][] ={{1, 2, 3, 4, 5},
{1, 4, 3, 6, 5},
{8, 2, 3, 4, 5}};
如何轻松创建这样的矩阵?
答案 0 :(得分:1)
我不知道你的矢量是什么类型,但我现在假设他们只是Integer
。如果您不是,请将Integer
替换为您正在使用的任何类型。
如果您愿意使用Vector
代替array
,则可以声明矩阵:
Vector<Vector<Integer>> matrix = new Vector<Vector<Integer>>();
然后你可以添加像
这样的元素matrix.add(vector1);
matrix.add(vector2);
matrix.add(vector3);
然后您就可以访问
等元素matrix.get(2).get(4); //Returns 6 from the sample data
如果确实想要使用arrays
,无论出于何种原因,它仍然不难做到,它只是你向量中的另一种方法。< / p>
您可以改为声明matrix
:
Integer[][] matrix = {vector1.toArray(), vector2.toArray(), vector3.toArray()};
然后您可以访问
等元素matrix[2][4]; //Returns 6 from the sample data
我会注意到,我不是100%你需要做Integer[][]
而不仅仅是int[][]
,但我认为既然你不能使用原语对于Vector
的通用内容,您可能需要继续使用Integer
。
答案 1 :(得分:0)
Integer[][] matrix = new Integer[3][5];
**static**
matrix[0][0] == 1;
matrix[0][1] == 2;
matrix[0][2] == 3;
matrix[0][3] == 4;
matrix[0][4] == 5;
matrix[1][0] == 1;
matrix[1][0] == 4;
matrix[1][0] == 3;
matrix[1][0] == 6;
matrix[1][0] == 5;
matrix[1][0] == 8;
matrix[1][0] == 2;
matrix[1][0] == 3;
matrix[1][0] == 4;
**dynamic**
Integer[][] matrix = {vector1.toArray(), vector2.toArray(), vector3.toArray()};
答案 2 :(得分:0)
您的程序似乎会在多个位置使用矩阵,过了一段时间后,您将不得不重新发明轮子并为矩阵编写自己的库的一部分。
您应该认真考虑使用some现有的库。
使用当前方法,一半代码将包含在2D(或更多)数组上运行的for循环。