¿Existe un método predefinido para padarray en java por un número dado de filas y columnas con un número

Cómo padarray en java que es agregar filas y columnas a una matriz existente en frente y atrás con un número dado.

Por ejemplo :-

let x =  1  2  3
         4  5  6
         7  8  9   

y ahora quiero 2 filas y columnas de ceros en esto:

   x =  0 0 0 0 0 0 0 
        0 0 0 0 0 0 0
        0 0 1 2 3 0 0
        0 0 4 5 6 0 0
        0 0 7 8 9 0 0
        0 0 0 0 0 0 0
        0 0 0 0 0 0 0

Por lo tanto, quiero saber si hay un método existente o una forma de hacer esto en Java como si estuviera disponible en Matlab utilizando el método predefinido llamado padarray(x,[r,c]) .

Respuesta 1

Nunca puede agregar filas o columnas a matrices bidimensionales. Las matrices son de tamaño fijo. Podría usar una estructura de datos dinámica como List<List<Integer>>.

Lo que también puede hacer es crear una nueva matriz (que sea más grande o más pequeña que la actual) utilizando el Arrays.copyOf(int[] original, int newLength);método.

Tu matriz xes como:

  int[][] x = new int[][]{{1,2,3}, {4,5,6}, {7,8,9}};

No hay una sola línea (lo sé) para transformarlo al formato deseado. Debe crear un método que cree una nueva matriz bidimensional y colocar sus valores en los índices correctos.

Respuesta: 2

Tengo un proyecto de Java que hace el "laberinto de Windows" y uso el algoritmo de proyección de rayos. Aquí hay una captura de pantalla: Como puede ver, todas las paredes tienen el mismo tamaño de altura. Me gustaría hacer lo mismo pero ...

Equipo, obteniendo el siguiente error en mi archivo pom. Fase de ciclo de vida desconocida "compilación". Debe especificar una fase de ciclo de vida válida o un objetivo en el formato. Revisé la URL proporcionada pero aún obtengo ...

Supongamos que se nos dan las siguientes dos matrices String [] keys = new String [] {"a", "b", "c", "aa", "d", "b"} int [] values ​​= new int [] {1, 2, 3, 4, 5, 6} Y al fusionar estos ...

Quiero comparar dos valores dobles de la siguiente manera: Double doubleValue = Double.valueOf (Long.MAX_VALUE); Double doubleValue2 = Double.valueOf (Long.MAX_VALUE + 1d); Aparentemente doubleValue y doubleValu2 ...