scala - 在 Scala 中创建具有指定行数和列数的对角矩阵
问题描述
mllib
我有一个名为的输入块矩阵matrix
,
matrix : org.apache.spark.mllib.linalg.Matrix =
0.0 2.0 1.0 2.0
2.0 0.0 2.0 4.0
1.0 2.0 0.0 3.0
2.0 4.0 3.0 0.0
根据我的 Scala 代码,对角线是zero
肯定的。我需要 的对角线为matrix
1。如果我的diagonal matrix
对角线值1
如下,
diagonalMatrix: org.apache.spark.mllib.linalg.Matrix =
1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
我可以添加这些矩阵,所以diagonals
ofmatrix
将更改为 1。
matrix : org.apache.spark.mllib.linalg.Matrix =
1.0 2.0 1.0 2.0
2.0 1.0 2.0 4.0
1.0 2.0 1.0 3.0
2.0 4.0 3.0 1.0
我们可以根据下面给出的答案创建一个diagonal matrix
指定数量的rows
andcolumns
和 and 。但由于 和 的数量太大,我需要一个. 或者有没有更好的解决方案来制作 to 的对角线?diagonals
1
rows
columns
optimized solution
matrix
1
解决方案
val nR = 5
val nC = 5
val seq = for {
i <- 0 until nC
j <- 0 until nR
v = if (i == j) 1d else 0d
} yield v
val matrix = DenseMatrix(nR, nC, seq.toArray)
推荐阅读
- webview - 键盘消失后Android Webview中不需要的顶部和底部空白
- android - Android 媒体播放器正在自行播放
- java - 如何通过 maven 导入多个 Spring 应用程序,其中每个依赖项位于其自己的类路径上(以避免依赖项冲突)?
- field - 谁能解释 Web 服务器日志数据中的字段?
- ios - 获取方法 JSON 数据以在文本字段中显示不起作用(错误)
- laravel - Laravel 计划队列:工作不自动工作需要手动触发
- dialogflow-es - 针对数字的谷歌文本到语音错误的操作
- python - 在 Tensorflow 和 Keras 的两个通道上生成 softmax
- c - 如果 function() 的输出被忽略,则 (type)function() 中的 (type) 原因
- laravel - 未定义变量:错误(查看:D:\xampp\htdocs\ninjatv\resources\views\auth\login.blade.php)