在Julia中,某些条件为真的数组行号

时间:2017-01-18 20:36:32

标签: julia

如果我有

trial <- matrix(c(3,4,1,2,1,2,4,2,5), ncol=3)
colnames(trial) <- c('value', 'min', 'max')
trial.table <- data.frame(trial)

DT::datatable(trial.table,options = list(rowCallback = JS('
                                                          function(nRow, aData) {
                                                          for (i=2; i < 4; i++) {
                                                              if (parseFloat(aData[i]) > aData[1])
                                                              $("td:eq(" + i + ")", nRow).css("background-color", "orange");
                                                              }
                                                          }')))

获取第二列等于1的行数的最快方法是什么?或者,掩模在第二列为1时为真,否则为假。谢谢!

2 个答案:

答案 0 :(得分:3)

我认为自然的方式是find(a[:, 2] .== 1)。 也应该快,虽然速度可能取决于a的大小。

答案 1 :(得分:0)

另一种方法是使用理解,但速度较慢。

julia> pos = [i for i in 1:size(a,1) if a[i,2] == 1]
3-element Array{Int64,1}:
2
3
5