5

我正在尝试从双精度数组创建一个向量。然后我想将这个向量乘以一个矩阵。有谁知道我怎么能做到这一点?下面是一个非常简单的例子,我想开始工作。

// Create the matrix (using JAMA)
Matrix a = new Matrix( [[1,2,3],[1,2,3],[1,2,3]] );

// Create a vector out of an array
...

// Multiply the vector by the matrix
...
4

3 回答 3

13

这是通缉操作的简单示例:

double[][] array = {{1.,2.,3},{1.,2.,3.},{1.,2.,3.}}; 
Matrix a = new Matrix(array);   
Matrix b = new Matrix(new double[]{1., 1., 1.}, 1);     
Matrix c = b.times(a);  
System.out.println(Arrays.deepToString(c.getArray()));

结果:

[[3.0, 6.0, 9.0]]

换句话说就是:

在此处输入图像描述

于 2011-07-13T19:09:16.490 回答
1

为什么不能使用 Matrix 的 arrayTimes 方法?一个向量只是一个 1 xn 矩阵(我认为)所以你不能初始化一个只有 1 维的第二个矩阵并使用 arrayTimes 吗?

Matrix a = new Matrix( [[1,2,3],[1,2,3],[1,2,3]] );
Matrix b = new Matrix( [[1,2,3]] ); // this is a vector
Matrix c = a.arrayTimes(b.transpose); // transpose so that the inner dimensions agree

这就是我认为通过阅读文档会起作用的方法。

于 2011-07-13T19:06:40.847 回答
0

这个怎么样:

double[][] vals = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}};
Matrix A = new Matrix(vals);

来自http://math.nist.gov/javanumerics/jama/doc/Jama/Matrix.html

于 2011-07-13T19:05:24.657 回答