如何将下三角矩阵转换为向量?
How to convert lower triangular matrix into a vector?
我想将三角矩阵转换为向量。
假设我有 7x7 下三角矩阵。像这样:
0 0 0 0 0 0 1
0 0 0 0 0 2 3
0 0 0 0 4 5 6
0 0 0 7 8 9 10
0 0 11 12 13 14 15
0 16 17 18 19 20 21
22 23 24 25 26 27 28
而且我需要将此矩阵转换为忽略零的向量。所以,结果应该是:
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 28]
我已经通过以下代码制作了一个矩阵:
int specMas[][] = new int[7][7];
Random rand = new Random();
int i, j;
for(j = 6; j > -1; j--) {
for(i = 6; i > 5-j; i--) {
specMas[i][j] = rand.nextInt(-100, 101);
}
}
for (i=0; i<7; i++) {
for (j=0; j<7; j++)
System.out.print(specMas[i][j]);
System.out.println();
}
但我真的不知道如何将其转换为向量。你能解释一下怎么做吗?
只过滤掉下面的0值
int k = 0;
Integer[] array = new Integer[specMas.length * specMas.length];
for (i = 0; i < specMas.length; i++) {
for (j = 0; j < specMas[i].length; j++) {
array[k++] = specMas[i][j];
}
}
Integer[] result = Arrays.stream(array)
.filter(o -> o != 0).collect(Collectors.toList()).toArray(Integer[]::new);
结果数组将是您想要的答案,顺便说一句,将 2 阶张量转换为向量的概念非常有用,通过这种方法您可以转移 4 阶张量 (supper-operators) 到张量等级 2(矩阵)然后研究它们在新向量中的行为 space .
验证最终结果为
for (i = 0 ; i< result.length ; i++){
System.out.print(result[i]);
}
我想将三角矩阵转换为向量。
假设我有 7x7 下三角矩阵。像这样:
0 0 0 0 0 0 1
0 0 0 0 0 2 3
0 0 0 0 4 5 6
0 0 0 7 8 9 10
0 0 11 12 13 14 15
0 16 17 18 19 20 21
22 23 24 25 26 27 28
而且我需要将此矩阵转换为忽略零的向量。所以,结果应该是:
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 28]
我已经通过以下代码制作了一个矩阵:
int specMas[][] = new int[7][7];
Random rand = new Random();
int i, j;
for(j = 6; j > -1; j--) {
for(i = 6; i > 5-j; i--) {
specMas[i][j] = rand.nextInt(-100, 101);
}
}
for (i=0; i<7; i++) {
for (j=0; j<7; j++)
System.out.print(specMas[i][j]);
System.out.println();
}
但我真的不知道如何将其转换为向量。你能解释一下怎么做吗?
只过滤掉下面的0值
int k = 0;
Integer[] array = new Integer[specMas.length * specMas.length];
for (i = 0; i < specMas.length; i++) {
for (j = 0; j < specMas[i].length; j++) {
array[k++] = specMas[i][j];
}
}
Integer[] result = Arrays.stream(array)
.filter(o -> o != 0).collect(Collectors.toList()).toArray(Integer[]::new);
结果数组将是您想要的答案,顺便说一句,将 2 阶张量转换为向量的概念非常有用,通过这种方法您可以转移 4 阶张量 (supper-operators) 到张量等级 2(矩阵)然后研究它们在新向量中的行为 space .
验证最终结果为
for (i = 0 ; i< result.length ; i++){
System.out.print(result[i]);
}