我正在尝试编写一个使用数组乘以两个矩阵的类。代码中是否有错误?

时间:2016-05-01 20:54:38

标签: java arrays matrix multidimensional-array

import java.io.IOException;

public class Matrix {
    public static float[][] multiplyM(float[][] FM, float[][] SM) throws IOException{
        int Frows = FM.length;
        int Fcolumns = FM[0].length;
        int Srows = FM[0].length;
        int Scolumns = FM.length;
        System.out.println(Frows);
        System.out.println(Fcolumns);
        System.out.println("$$$$$$$$$$$$$$$");
        System.out.println(Srows);
        System.out.println(Scolumns);



        int z;
        int dd;
        float finAns[][] = new float[Fcolumns][Scolumns];
        if (Scolumns != Frows){
            System.out.println("ERROR!!!");
        }
        else{
            int rNum = 0;
            int cNum = 0;

            //compute matrix
            for (dd = 0; dd < Frows; dd++){

                //compute row in matrix
                for (z = 0; z < Scolumns; z++){

                    //compute element in matrix
                    for (int i = 0; i < Fcolumns ; i++){

                        finAns[dd][z] += FM[dd][i] * SM[i][z];

                    }//end of for 1
                }//end of for 2
            }//end of for 3

        }
        int Finrows = finAns.length;
        int Fincolumns = finAns[0].length;
        System.out.println(Finrows);
        System.out.println(Fincolumns);
        System.out.println("*************");

        return finAns;

    }
    /*
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        float [][] a = {{3,4,7,},{4,4,3},{4,7,6}};
        float [][] b = {{3,4,8},{4,4,2},{2,9,0}};
        multiplyM(a,b);
    }
     */
}

1 个答案:

答案 0 :(得分:0)

int Frows = FM.length;
int Fcolumns = FM[0].length;
int Srows = FM[0].length;
int Scolumns = FM.length;

应该是

int Frows = FM.length;
int Fcolumns = FM[0].length;
int Srows = FM.length;
int Scolumns = FM[0].length;

和......

float finAns[][] = new float[Fcolumns][Scolumns];

应该是

float finAns[][] = new float[Frows][Scolumns];

从那个

开始