首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Scalala中对SparseVector进行切片以获得SparseVector

在Scalala中对SparseVector进行切片以获得SparseVector
EN

Stack Overflow用户
提问于 2012-05-07 11:11:29
回答 1查看 150关注 0票数 2

我想在scalala中分割一个稀疏向量,然后得到另一个稀疏向量。法线切片总是给出一个标准向量。我可以在切片时提供一个隐式函数来做这件事吗?如果可以,它看起来会是什么样子?

作为一个例子,我想要完成以下工作:

代码语言:javascript
复制
val v:SparseVectorRow[Double] = ...
val v2:SparseVectorRow[Double] = v(List(1,3,5))

最后,我使用Scalala版本1.0.0.RC3-SNAPSHOT。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-05-07 20:13:57

是的,您可以定义自己的适当参数化的CanSliceVector。下面的代码不是通用的,也不一定是有效的,但它是有效的:

代码语言:javascript
复制
import scalala.generic.collection.CanSliceVector

implicit object svrSlicer extends
  CanSliceVector[SparseVectorRow[Double], Int, SparseVectorRow[Double]] {
  def apply(from: SparseVectorRow[Double], keys: Seq[Int]) =
    SparseVector.create(from.size)(keys.map(k => (k, from(k))): _*).t
}

val v: SparseVectorRow[Double] = SparseVector.create(10)((0, 1.0), (3, 2.0)).t
val v2: SparseVectorRow[Double] = v(List(1, 3, 5))

您可以查看Scalala源代码,找出实现这一点的“正确”方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10476253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档