0
このコードは、リストのは [一覧[INT]]と省略し、そのタイプ
val matrix = Matrix(List(List(1, 2), List(3, 4)))
class Matrix(matrixParameters: List[List[Int]])
object Matrix {
def apply(matrixParameters: List[List[Int]]) {
new Matrix(matrixParameters)
}
}
を使用して一覧を作成します。しかし
List[List[Int]]
の使用を省略し、同じようなものを使用したいです:
val matrix = Matrix(1,2; 3,4)
これはScalaで実現できますか? ...
val matrixFromString = MatrixFromString("1,2; 3,4")
object MatrixFromString {
def apply(matrixParameters: String) {
val l1 = matrixParameters.split(";")(0).split(",").map { x => Integer.valueOf(x).toInt }.toList;
val l2 = matrixParameters.split(";")(1).split(",").map { x => Integer.valueOf(x).toInt }.toList;
new Matrix(List(l1, l2))
}
}
私はそれはあなたの問題を解決しないかもしれないけど、私は非常に[ScalaのNLPブリーズ線形代数](https://github.com/scalanlpをお勧めします/ breeze)ライブラリ。少なくとも、彼らの 'DenseMatrix'コンストラクタはあなたが求めていることを正確に行います。あなたはそのコードの一部を抜き出すことができます。 –
@ evan058ありがとうが、私はbreezeライブラリを試してみましたが、これはmatlabと比較しても、線形代数演算の最も基本的なコンパイルには非常に遅いです。 –
コンパイルまたは実行しますか?最高でMatlabと同じくらい速く行列乗算のような演算を実行します(BLASとLAPACKの実装をセットアップする必要があります) –