2012-05-20 91 views
0

我试图通过导入org.apache.commons.math3.geometry.Vector来创建一个矢量对象。
让我困惑的是如何制作它的一个实例。
我试过这种方法:
向量v1 =新向量(1,2,3);
但ide说“'矢量'是抽象的,不能被实例化
有没有人知道这个类?谢谢。如何初始化org.apache.commons.math3.geometry.Vector?

P.S.我使用的(1,2,3)可能会引起误解。我想要的是一个动态矢量,我可以将它的维度分配给它。

+1

你只需要实例VECTOR'的'一个子类,而不是'VECTOR'本身。 –

回答

2

试试这个:

Vector v1 = new Vector3D(1, 2, 3); 

你需要实现矢量类。 javadocs告诉你有三种选择:Vector1D,Vector2DVector3D

为什么他们创造了我永远不会知道的一维矢量。我通常称这些“标量”。

如果您需要更大的矢量,然后使用RealVector及其子类ArrayRealVector

你是不是无法打开javadocs并自行研究?如果你自己做一点思考,你会更快地取得进展。

+0

但如果我想要一个大于3的尺寸,例如200.我该怎么办? –

+0

谢谢!我会尽量花更多时间阅读javadocs。我不熟悉现在这些文档的格式... –

0

这是界面 - Vector

您应该使用的Vector3D代替。 如果您使用Eclipse,则可以单击Vector并按Ctrl+T查看层次结构。

+0

使用Vector3D我的矢量的维度被限制为3.我想要一个矢量,我可以在创建它时指定其维度。 –

+0

该库仅支持1,2,3维。如果你想要更多维度,你需要实现你自己的'NDimVector' – Xeon

0

如果你需要一个真正的数学向量与点产品等,超过三个元素,它看起来像你将不得不创建自己的类实现了矢量接口。使用apache Vector3D类作为模型,并从那里扩展它。

如果你只是在寻找一个相对简单的元素的数组使用这个类来代替:

http://docs.oracle.com/javase/6/docs/api/java/util/Vector.html