簡體   English   中英

檢查數組是否坐標鄰居循環數組點

[英]check if array coordinates neighbour cyclical array point

我有一個3d數組,其尺寸為M xN x L,它定義了循環體積上的值(即,如果我們將索引設為零,則第M-1個點緊挨着第0個點)。 如果我得到了一個點(X,Y,Z)的坐標,我如何才能整齊地找到所有隔壁的門點(即僅在一個維度上相距一個點的點)?

我最初的解決方案是for循環遍歷數組中的所有值(數組相當小),然后執行以下操作:

if abs(X-M) + abs(Y-N) + abs(Z-L) == 1
  do neighboring point stuff
end

但這沒有考慮到循環方面。 關於快速,簡潔的方法的想法是晶圓廠。

提前致謝!

這就是我最終為有興趣的人所做的(不知道為什么我沒有早想到這一點):

for dimension=1:3
  for direction=-1:2:1
    vec = zeros(3,1);
    vec(dimension) = direction;

    this_point = point + vec;
    this_point(dimension) = mod(this_point(dimension)-1,size(obj.int_ref,dimension))+1;
  end
end

請注意,這是matlab代碼,因此數組的索引從1開始(因此出現異常的mod行)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM