朱莉娅指数矩阵与向量

时间:2017-03-03 04:26:10

标签: indexing julia matrix-indexing

假设我有一个20-by-10矩阵m

20-by-1向量v,其中每个元素都是1到10之间的整数。

是否有类似m[:,v]

的智能索引命令

会给出一个向量,其中每个元素i是索引m[i,v[i]]的元素?

2 个答案:

答案 0 :(得分:3)

不,似乎你不能这样做。文档(http://docs.julialang.org/en/stable/manual/arrays/)说:

  

如果所有索引都是标量,则结果X是数组A中的单个元素。否则,X是一个维数与所有索引的维度总和相同的数组。

因此,要从索引操作获得1d结果,您需要让其中一个索引具有维度0,即只是标量 - 然后您将无法得到您想要的结果。

使用理解,如您对问题的评论中所建议的那样。

答案 1 :(得分:2)

明确理解方法:

[m[i,v[i]] for i = 1:length(v)]

这简洁明了,似乎没有必要使用特殊语法。