julia选择数组/矩阵中除一个元素外的所有元素

时间:2016-06-06 15:26:43

标签: arrays select julia

我想知道是否可以在朱莉娅数组中选择除一个元素之外的所有元素(按索引)。

例如,在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, :] 

选择秒和第三行。无论如何,我真的想知道如何在朱莉娅数组中选择除了一个特定元素(例如行)之外的所有元素。

2 个答案:

答案 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)]