0

我有一个带有一定数量的行和列的掩码。我只想阅读包含例如 1 的 (i,j) 组件。然后一旦找到具有 1 的 (i,j) 组件,如果 (i+1,j),(ii ,j),(i,j+1),(i,j-1) 等于 1。

希望这很清楚。欢迎任何建议。谢谢。

4

1 回答 1

1

让你的面具是这样的:

integer, dimension(1:r,1:c) :: mask

那么以下片段应该为您指明正确的方向:

forall (i=1:r, j=1:c, mask(i,j)==1)
   if ( mask(i-1,j)==1) then
      ! do the right thing
   else if ( mask(i+1,j)==1) then
      ! I hope you get the picture now
...

+/- i/j我将留给您处理超出数组边界 的边缘情况。forall不一定是使用最快的构造,我们可以争论使用它的优雅性和可读性,而不是一系列循环,但我们不要。

于 2012-05-16T08:37:43.123 回答