在Julia中提取特定的子阵列

时间:2016-03-26 15:17:26

标签: julia

来自数组

[3,1,7,2;
4,3,2,7;
3,4,1,2]

我想提取对应于具有等于2的最后一个主进行的行的子数组。

我是试图开始使用Julia的Matlab用户。我在文档中查找了一些提示,但没有找到合适的答案。

非常感谢您提前,

Stephane

1 个答案:

答案 0 :(得分:7)

这对你有用吗?

julia> x = [3 1 7 2
            4 3 2 7
            3 4 1 2]
3x4 Array{Int64,2}:
 3  1  7  2
 4  3  2  7
 3  4  1  2

julia> x[x[:, end] .== 2, :]
2x4 Array{Int64,2}:
 3  1  7  2
 3  4  1  2

让我们分解吧。

x[:, end]是最后一栏。

x[:, end] .== 2给出的是Vector{Bool}(1d数组truefalse),如果该行以2结尾true,则false {1}}否则。

然后将它们放在一起我们有x[x[:, end] .== 2, :],它使用truefalse这个向量来指定哪些行,而,:表示每个行中的所有列那些行。