有时人们想要循环遍历数组的索引。例如,假设我想创建一个嘈杂的乘法表。首先,创建一些噪音:
julia> m = 0.1*rand(2,3)
2×3 Matrix{Float64}:
0.0692654 0.0297861 0.0642931
0.0187022 0.0530222 0.0561437
接下来,添加表的值:
julia> indices(A) = Iterators.map(Tuple, CartesianIndices(A))
indices (generic function with 1 method)
julia> noisy_mult = [i*j+m[i,j] for (i,j) in indices(m)]
2×3 Matrix{Float64}:
1.06927 2.02979 3.06429
2.0187 4.05302 6.05614
有没有一个indices
Base 中的等效项,或者更好/更简单的方法来实现相同的结果?将添加indices
到标准库是一个好主意吗?
这看起来像是针对 CartesianIndices 的以下错误消息的解决方法:
iteration is deliberately unsupported for CartesianIndex.
Use `I` rather than `I...`, or use `Tuple(I)...`
我会问写那条消息的人是否有添加这种方法的缺点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)