Arrays 如何通过其他一维数组访问一维数组的元素?

Arrays 如何通过其他一维数组访问一维数组的元素?,arrays,julia,flat,Arrays,Julia,Flat,我对朱莉娅很陌生,甚至对编程也很陌生。因此,请原谅我的简单疑问 考虑以下Matlab示例: A=[10; 20; 30; 40; 50]; B=[1; 3; 5]; matlab中AB=0的结果应为[0.0 20 0.0 40 0.0] 如何在Julia中实现1-D阵列的相同功能 我有一个变量a和B: 当我执行此命令时,A[[B]] 错误:ArgumentError:无效索引:数组{Int64,1}[[1,2]] 但是,本声明提供了以下结果: julia> A[[1, 3 ,5]] 3-

我对朱莉娅很陌生,甚至对编程也很陌生。因此,请原谅我的简单疑问

考虑以下Matlab示例:

A=[10; 20; 30; 40; 50];
B=[1; 3; 5];
matlab中AB=0的结果应为[0.0 20 0.0 40 0.0]

如何在Julia中实现1-D阵列的相同功能

我有一个变量a和B:

当我执行此命令时,A[[B]]

错误:ArgumentError:无效索引:数组{Int64,1}[[1,2]]

但是,本声明提供了以下结果:

julia> A[[1, 3 ,5]]
3-element Array{Int64,1}:
 5
 3
 1

请引导我。我知道Julia拥有平面阵列,但是如何通过任何其他平面阵列访问它们

您可以通过在B给定的索引处用零覆盖A的元素来获得所需的结果,如下所示:

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[B]
A[ [1; 3; 5] ]
A[ [1, 3, 5] ]
A[ [1 3 5] ]
A[ 1:2:5 ]
一切按要求进行。可以使用任何有效索引或任何索引集合为数组编制索引


但是,A[[B]]试图在位置[1;3;5]处为A建立索引,这是一个错误。

您好,我不太清楚您到底想做什么。关于您的错误,这只是[[1,3,5]]工作正常与[[1,3,5]]错误之间的区别,因为向量向量不是正确的索引向量。您好Crstnbr,谢谢您给我写信。我希望得到Matlab语句的结果:AB=0,在Julia中。如果我执行以下语句:A[B]=0,在Julia中,结果是0;而在matlab中,结果是[0.020.0400.0]。好的。这是我不知道的一件非常基本的事情。如果我可以问你,有没有什么好的阅读资料可以让我开始学习这些细微差别?我感谢你在这方面的帮助。非常感谢。一般来说,Julia文档相当容易阅读。看一看,举个例子。我也推荐
A[B]
A[ [1; 3; 5] ]
A[ [1, 3, 5] ]
A[ [1 3 5] ]
A[ 1:2:5 ]