【问题标题】:Julia. Relabelling a vector朱莉娅。重新标记向量
【发布时间】:2014-07-14 16:05:43
【问题描述】:

我有一个非连续整数向量,我需要将其用作矩阵的索引。为了创建一个最小尺寸的矩阵,我想通过以下方式重新标记向量的条目:

input = [794, 421, 496, 158, 421, 794, 794, 656, 108, 496, 496, 687, 108, 511, 108, 108, 158, 687, 158, 687]
output = [1, 2, 3, 4, 2, 1, 1, 5, 6, 3, 3, 7, 6, 8, 6, 6, 4, 7, 4, 7]

这是我在 Mathematica 中如何做到这一点的示例:

labels = DeleteDuplicates[input]
output = Flatten[Position[labels, #] & /@ input]

在 Julia 中执行此操作的有效方法是什么?

谢谢, 柯岩

【问题讨论】:

  • 看看uniqueindexin
  • 刚刚找到了解决方案:relabel(v::Vector{Int64}) = findin(v, unique(v))。谢谢
  • 实际上,findin 的错误/错误描述使此解决方案暂时出现问题。请改用indexin
  • 由于您自己找到了答案,因此您可以自定义添加答案。 meta.stackexchange.com/questions/17845/…
  • 感谢您的提前,您是正确的。 findin 是一个错误

标签: vector indexing wolfram-mathematica julia


【解决方案1】:

解决办法是

relabel(v::Vector{Int64}) = indexin(v, unique(v))

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2018-11-27
    • 2022-07-20
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2017-01-15
    • 2016-02-18
    相关资源
    最近更新 更多