我想知道是否可以在朱莉娅数组中选择除一个元素之外的所有元素(按索引)。
例如,在R语言中,为了不选择矩阵中的特定行,可以写:
$scope.isSearching = false;
return $scope.autocomplete.suggestions = phrases[0]; // Verify this with console.
然后:
a = matrix(1:9, 3, 3)
a
1 4 7
2 5 8
3 6 9
现在我想在朱莉娅做同样的事情。我尝试使用逻辑运算符,但我找不到(un)选择特定索引的方法。这是我试过的:
a[-2, ]
1 4 7
3 6 9
或如R:
a = rand(3,3)
a[.!= 2, :]
ERROR: syntax "!=" is not a unary operator
以及其他一些选择。在朱莉娅工作的是:
a[-2, :]
或
a[a .>= .5, :]
选择秒和第三行。无论如何,我真的想知道如何在朱莉娅数组中选择除了一个特定元素(例如行)之外的所有元素。
答案 0 :(得分:11)
这是一个选项:
A = rand(3,3)
B = A[1:end .!= 2,:]
1:end
获取行索引的完整列表(您也可以使用1:size(A,1)
)然后.!=
(注意.
表示逐元素比较)选择索引不等于2.
如果您想以这种方式选择列,请使用:
C = A[:, 1:end .!= 2]
请注意,end
关键字会自动等于您引用的行,列或其他维度的最后一个索引值。
注意:答案已更新,以反映评论中@Matt B建议的改进(使用end
代替size()
)。
答案 1 :(得分:0)
您应该使用Not
函数,该函数构造一个反向索引:
A = rand(3,3)
A[Not(2), :]
A[:, Not(2)]