julia - Julia:附加到数组
问题描述
有人请帮我理解这一点。我在下面有以下代码。我正在尝试附加index[i]-1
到一个空数组。但是我收到此错误:“ BoundsError: attempt to access 0-element Array{Any,1} at index [1]
”:
sample_size_array = [9,5,6,9,2,6,9]
n_minus_1 = []
array_length = length(sample_size_array)
for i in 1:array_length
n_minus_1[i].append(sample_size_array[i] -1)
end
println(n_minus_1)
如果 Julia 不明白array[0]
那为什么我从 0 开始而不是从 1 开始?
解决方案
您的代码有两个问题:
- 在第一次迭代中,您尝试在该数组仍然为空(有长度)时访问
n_minus_1
索引处的数组- 这会引发错误;1
0
- 在 Julia 中,您不使用 a 调用方法
.
(此符号用于不同目的 - 在这种情况下,它被解析为字段访问,并且稍后也会引发错误)
要解决这两个问题,请使用push!
在数组末尾附加元素的函数。代码可能如下所示:
sample_size_array = [9,5,6,9,2,6,9]
n_minus_1 = []
array_length = length(sample_size_array)
for i in 1:array_length
push!(n_minus_1, sample_size_array[i]-1)
end
println(n_minus_1)
但是在这种情况下,整个操作可以更简单地编写为:
n_minus_1 = sample_size_array .- 1
并且您不需要任何循环(在这里您可以看到.
Julia 中的另一种用法 - 在这种情况下,我们使用它来表示我们1
要从 的每个元素中减去sample_size_array
)。
推荐阅读
- python - 在 WSGI 中使用 Requests 库
- javascript - 如何在新页面中保留展开的下拉菜单?
- java - 在 Java 中使用匿名类进行模拟
- jenkins - 如何获得 Jenkins 目前的工作,以便更新它的编号?
- javascript - 在 React Native 中根据命名约定导入 typescript 文件
- javascript - 多个事件监听器
- javascript - AWS S3 通过预签名 URL 上传返回 400 错误请求
- vb.net - 为什么 vb.nets '=' 运算符以这种方式评估不同的类型?
- tensorflow - 如何协调 TFP 与 PyMC3 MCMC 结果?
- android - 应用程序在模拟器上运行良好,但应用程序无法通过 apk 包安装在移动设备上