arrays - 使 int 数组的总和随着数组元素的变化而变化
问题描述
我有以下方式的数组集合:
arr = Array{Array{Int64,1},1}( [ [1,2,3] , [4,5,6] , [7,8,9] ] )
我想定义一个新的数组sum
,sums[i] = sum(arr[i])
但是以一种动态的方式,如果我更改 的元素arr[i]
,sums[i]
则会自动更改。例如:
julia> sums
3-element Array{Int64,1}:
6
15
24
julia> arr[1][1] = 3
3
julia> sums
3-element Array{Int64,1}:
8
15
24
这可能吗?如果是这样,我该怎么做?
解决方案
您可以使用MappedArrays
. 提供数组MappedArrays
的“视图” ,以便. 所有你需要做的就是添加包并开始使用它。请注意,转换是惰性的,这意味着它会在您尝试访问它们时计算值。因此,更新到 后,您将在访问 的条目时看到更改。M
A
M[i] = f(A[i])
MappedArrays
]add MappedArrays
sum
M
A
M
M
julia> using MappedArrays
julia> arr = [ [1,2,3] , [4,5,6] , [7,8,9] ]
3-element Array{Array{Int64,1},1}:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
julia> M = mappedarray(sum, arr)
3-element mappedarray(sum, ::Array{Array{Int64,1},1}) with eltype Int64:
6
15
24
julia> arr[1][2] = 10
10
julia> M
3-element mappedarray(sum, ::Array{Array{Int64,1},1}) with eltype Int64:
14
15
24
推荐阅读
- laravel - Laravel 不等于不按预期工作
- pine-script - 如何在 pinescript 中制作多个时间框架 ichimoku 指标?
- reactjs - React JS APP中如何管理多个角色?
- c# - SQL Uniqueidentifier 和 hashbytes 与 c# 不匹配
- java - 带空格的 Java 格式数字
- python - 是否有统计测试来检查python中组之间的变异系数(相对标准偏差)的差异?
- node.js - ansi-html 中不受控制的资源消耗
- hive - 在 Hive 3.1.3 中将时间戳从 ms 转换为字符串格式
- python - 在 Pandas 的列中替换多个字符串值的更快方法
- spring-boot - 从 Spring Boot 低版本迁移到高版本后 @Valid 的编译错误