我对Julia非常陌生,甚至对编程也不陌生。因此,请原谅我简单的疑问。
考虑下面的Matlab示例:
A=[10; 20; 30; 40; 50];
B=[1; 3; 5];
在Matlab中A(B)=0
的结果应为[0.0 20 0.0 40 0.0]
。
如何在Julia中为一维数组实现相同的功能?
我有一个变量A
和B
:
julia> A
5×1 Array{Int64,2}:
10
20
30
40
50
julia> B
2-element Array{Int64,1}:
1
3
5
执行此A[[B]]
ERROR: ArgumentError: invalid index: Array{Int64,1}[[1, 2]]
但是,此语句提供了以下结果:
julia> A[[1, 3 ,5]]
3-element Array{Int64,1}:
5
3
1
请指导我。我知道Julia具有平面数组,但是如何通过任何其他平面数组访问它们。
答案 0 :(得分:1)
您还有另外一对括号。
A[B]
A[ [1; 3; 5] ]
A[ [1, 3, 5] ]
A[ [1 3 5] ]
A[ 1:2:5 ]
所有工作均按要求进行。您可以使用任何有效索引或任何索引集合对数组进行索引。
但是,A[[B]]
试图在位置A
上索引[1;3;5]
,这是一个错误。
答案 1 :(得分:0)
您可以通过在A
给出的索引处用零覆盖B
的元素来获得所需的结果,如下所示:
julia> A=[10; 20; 30; 40; 50];
julia> B=[1; 3; 5];
julia> A[B] .= 0;
julia> A
5-element Array{Int64,1}:
0
20
0
40
0
这里,点分配.=
表示就地更改A的元素。