1

这可能是一个有点愚蠢的问题,我也可能误解了解决这个问题的最佳方法,但我本质上想要做的是以下几点:

我想将以下矩阵相乘得到结果-0.8。但是,理想情况下,我希望使用 JAMA 函数来执行此操作。到目前为止,我有以下内容,我想我快到了,这只是我坚持的最后一步..

// Create the two arrays (in reality I won't be creating these, the two 1D matrices
// will be the result of other calculations - I have just created them for this example)
double[] aArray = [0.2, -0.2];
double[] bArray = [0, 4];

// Create matrices out of the arrays
Matrix a = new Matrix( aArray, 1 );
Matrix b = new Matrix( bArray, 1 );

// Multiply matrix a by matrix b to get matrix c
Matrix c = a.times(b);

// Turn matrix c into a double
double x = // ... this is where I'm stuck

对此的任何帮助将不胜感激。提前致谢!

4

3 回答 3

2

你的意思是使用get?

double x = c.get(0, 0);

http://math.nist.gov/javanumerics/jama/doc/

于 2011-08-31T16:24:11.473 回答
2

听起来你在寻找

double x = c.get(0, 0);

此外,您的矩阵具有不兼容的乘法维度。看起来第二个矩阵应该这样构造:

Matrix b = new Matrix( bArray, bArray.length );
于 2011-08-31T16:25:49.263 回答
2

您可以简单地使用get()方法:

double x = c.get(0,0);

请注意,您将获得 IllegalArgumentException,因为您尝试将两个行向量相乘。从times()文档中:

java.lang.IllegalArgumentException - Matrix inner dimensions must agree.

您可能希望将第二个数组变成列向量。

于 2011-08-31T16:26:19.187 回答