有输入列表X
和输出列表Y
。每个输入都可以1
成功或0
失败。
X = [6 7 8]
Y = [1 1 0]
将输入X
分成两组的Julia方式是什么 - 成功与失败?
XSuccess = [6 7]
XFails = [8]
我可以用循环来做,但似乎至少有两种更好的解决方法 - 使用查找功能和列表推导。
答案 0 :(得分:2)
XSuccess = getindex(X,find(Y))
XFail = getindex(X, find(x->x==0,Y))
检查数组索引上的the docs
答案 1 :(得分:2)
正如您所指出的,有几种方法可以做到这一点。让我们先看看find()
函数方法,然后我们将看一下列表推导方法。
x = [6, 7, 8]
y = [1, 1, 0]
xsucc = x[find(y .== 1)]
xfail = x[find(y .== 0)]
对于列表理解方法,我们可以执行以下操作。
x = [6, 7, 8]
y = [1, 1, 0]
xsucc = [w for w in x[y .== 1]]
xfail = [w for w in x[y .== 0]]
其中,我不确定哪个被认为是最惯用的Julia代码(可能都不是)。