sum - 对方阵求和
问题描述
嗨,我正在尝试对二维方阵求和。假设数组F(i,j)
对所有点都定义得很好i,j
。我可以对整个数组求和sum(F)
,但我想从一个小方块开始对数组求和,然后到全尺寸数组,这需要一个DO
循环。如果我要繁琐地写出逻辑,我想对数组求和F(i,j)
,如下所示:
DO i = -1,1
DO j = -1,1
value1 = sum(F)
END DO
END DO
DO i = -2,2
DO j = -2,2
value2 = sum(F)
END DO
END DO
DO i = -3,3
DO j = -3,3
value3 = sum(F)
END DO
END DO
并继续进行i=-30,30, j=-30,30
。我试图在一个DO
循环中实现这一点
DO i = -30,30
DO j = -30,30
value4 = sum(F(i:i+1,j:j+1))
END DO
END DO
但这给了我不正确的结果。我该如何解决这个问题,以便我可以在一个循环中实现这个?谢谢。
解决方案
如果我正在破译你想要做什么,你有一个二维数组,在两个维度上都有从 -30 到 30 的自定义范围?然后你想从这个中心的 3x3 矩阵开始,得到一个总和。然后将其放大到 5x5 并得到一个总和。继续下去,直到你得到整个矩阵的总和。
那时你将有 30 个总和。是的,您可以在单个 do 循环中执行此操作。将答案放入一维数组 Sums(30) 如下所示:
do i = 1, 30
Sums(i) = Sum(F(-i:i,-i:i))
end do
F 中的索引符号雕刻出不断增长的方阵以馈入 Sum 函数。
推荐阅读
- c++ - 如何制作按第二个元素排序的最小元组堆?
- laravel - 如何在 laravel yajra 数据表中显示图像?
- inventory - 搜索与来自公共来源的已知漏洞匹配的手动软件清单软件
- powershell - 在脚本块内使用脚本中的变量
- r - 如何使用库(WikipediR)修复 R 中的错误?
- sh - 保留 $? 的无操作 shell 命令?
- firebase - Firebase 触发器电子邮件主机名/IP 与证书的替代名称不匹配
- flutter - 如何重叠两个圆圈?
- javascript - 寻找一种有效的方法来动画切换类
- hadoop - 为什么 Druid Sum Aggregator 总是变为零