将RealMatrix与复杂矩阵相乘

时间:2013-05-23 13:01:42

标签: java eclipse apache-commons

我对Java很新,我面临一个问题,我相信它很容易掌握。

我正在生成一个链接到Apache - Commons Math库的项目。

在项目中,我正在使用相当多的RealMatrix个对象。我有一个方法如下工作

public static RealMatrix DistCalc(RealMatrix YCoord, RealMatrix ZCoord){
        RealMatrix Distance = new Array2DRowRealMatrix(YCoord.getRowDimension(),ZCoord.getRowDimension());
        for(int ii = 0; ii < YCoord.getRowDimension(); ii++){
            for(int jj = 0; jj < ZCoord.getRowDimension(); jj++){
                Distance.setEntry(ii,jj,Math.sqrt((YCoord.getEntry(ii, 0) - YCoord.getEntry(jj, 0))*(YCoord.getEntry(ii, 0) - YCoord.getEntry(jj, 0)) + (ZCoord.getEntry(jj, 0) - ZCoord.getEntry(ii, 0))*(ZCoord.getEntry(jj, 0) - ZCoord.getEntry(ii, 0))));
            }
        }        
        return Distance;
    }

另一个生成某个Complex矩阵,

// Define the random phase for the u- component
    public static Complex[][] RandPhi(int N, int nFFT){
        Complex[][] nn_u = new Complex[N][nFFT];        
        for(int ii = 0; ii < N; ii++){
            for(int jj = 0; jj < nFFT; jj++){
                nn_u[ii][jj] = new Complex(Math.cos(new Random().nextDouble()*2*Math.PI),Math.sin(new Random().nextDouble()*2*Math.PI));
            }
        }
        return nn_u;
    }

现在,我想将RealMatrix 距离Complex矩阵 nn_u 按列相乘:最后我应该来使用Complex[N][nFFT]矩阵。

你想介绍一下吗?

1 个答案:

答案 0 :(得分:1)

我建议您根据ComplexMatrix界面创建自己的RealMatrix界面,然后根据Array2DRowComplexMatrix类创建自己的Array2DRowRealMatrix类。要创建课程,只需download the source code,更改课程名称,将double data[][]更改为Complex data[][],然后更新对data的所有引用。

创建接受ComplexMatrix的{​​{1}}构造函数,或者使用RealMatrix参数包含multiply方法。

Commons应该拥有你需要的所有方法,你可能只需稍微调整它们的参数/返回类型。