Multiplicar columnas de matriz multidimensional por filas

Tengo las siguientes matrices en java, me gustaría multiplicar las columnas array_x por filas array_y para finalmente crear valores array_z

aray_x        array_y            array_z

4|9          4|11|12|14             |
---          ----------           -----
8|7          13|9|22|7              | 
---                               -----
3|2                                 | 
---                               -----  
9|1                                 | 

mi código de prueba que enumera la multiplicación de clase pública {

public static void main(String[] args) {
    int array_x[][] = {{9, 8}, {2, 17}, {49, 4}, {13, 119}, {2, 19}, {11, 47}, {3, 73}};
    int[][] array_y = new int[][]{{4, 11, 12, 14}, {13, 9, 22, 7}};
    int array_z[][] = new int[4][2];
    for (int i = 0; i < array_x.length; i++) {
        for (int j = 0; j < array_x.length; j++) {
            array_z[i][j] = array_x[i][j] * array_y[j][i];
                System.out.print(" "+array_z[i][j]);
        }

    }

}

}

¿Cómo puedo lograr esto? La primera columna de array_z se completa con los múltiplos de la primera columna de array_x y la primera fila de array_y. por ejemplo, 4x4 = 16, 8x11 = 88, thius array_x * array_y = array_z La segunda columna de array_z está poblada por los múltiplos de la segunda columna de array_x y la segunda fila de array_y.

Respuesta 1

Aquí hay una clase completa para compilar y ejecutar, con sus datos ... espero que esto ayude

public class Alphy {

    private double[][] x;

    public Alphy (double[][] x) {
        this.x = x;
    }

    public double[][] multiplyWith (double[][] y) {
        int nr = x.length, nc = x[0].length;
        double[][] z = new double[nr][nc];

        for (int i = 0 ; i < nr ; i++)
            for (int j = 0 ; j < nc ; j++)
                z[i][j] = x[i][j] * y[j][i];
        return z;
    }

    public static void print (double[][] m, String label) {
        int nr = m.length, nc = m[0].length;
        System.out.println (label);
        for (int i = 0 ; i < nr ; i++) {
            for (int j = 0 ; j < nc ; j++)
                System.out.print ("\t" + m[i][j]);
            System.out.println();
    }}

    public static void main (String[] args) {
        double[][]  X = {{4, 9}, {8, 7}, {3, 2}, {9, 1}},
                Y = {{4, 11, 12, 14}, {13, 9, 22, 7}},
                Z = new Alphy(X).multiplyWith(Y);
        Alphy.print (X, "Initial Matrix");
        Alphy.print (Y, "Multiplied by");
        Alphy.print (Z, "Gives the result");
}}
/* Output of the above class:

Initial Matrix
    4.0 9.0
    8.0 7.0
    3.0 2.0
    9.0 1.0
Multiplied by
    4.0 11.0    12.0    14.0
    13.0    9.0 22.0    7.0
Gives the result
    16.0    117.0
    88.0    63.0
    36.0    44.0
    126.0   7.0
*/
Respuesta: 2

Estoy tratando de construir un TreeModel para una aplicación Java. Como necesito serializarlo y enviarlo a través de un ObjectOutputStream, estoy tratando de usar el DefaultTreeModel porque implementa el ...

Estoy haciendo un trabajo de servicio web REST y muchos de los PUTS están tomando clases de DTO. Algunas de estas clases son bastante grandes. ¿Hay algo que pueda usar para obtener la representación XML de estas clases? ...

Escribí una aplicación basada en SNMP4J para enviar solicitudes SNMP y recibir trampas. todo funciona bien, pero no pude encontrar cómo configurar la cadena de comunidad para las trampas recibidas o incluso cómo ver el ...

No tengo mucha experiencia con Java, especialmente con proyectos de módulos múltiples, por lo que no puedo crear una plantilla de flujo de datos a partir de un proyecto de módulos múltiples. Para generar una plantilla a partir de un flujo de datos ...