假设我有一个20-by-10
矩阵m
和20-by-1
向量v
,其中每个元素都是1到10之间的整数。
是否有类似m[:,v]
会给出一个向量,其中每个元素i
是索引m
中[i,v[i]]
的元素?
答案 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)]
这简洁明了,似乎没有必要使用特殊语法。