我需要一些帮助,我在网格上有一个矩阵表示点,当给定一个元素时,我想找到它最近的邻居的指数,记住我有周期性的边界条件,所以如果我有元素A(1,1),它的最近的邻居是
N)
1)
其中A是我的矩阵,N是维数,我需要一个代码,它可以找到给定元素的n.n的指数。提前谢谢。
发布于 2020-03-04 05:01:26
下面是我对问题的解释:给定一些周期矩阵A
>> A = magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1和一些元素x (例如1),然后找出x的4个邻域的(i,j)指数。在这种情况下,指数(3,4),( 4,3),(4,1),(1,4)对应于12,15,4,13。
因为我不知道您的用例,所以我不知道这些索引的格式对您最方便。但是作为一个例子,我们可以编写一个函数neighbors,它返回一个带有元素x的4个索引的结构。
function out = neighbors(A, x)
[m, n] = size(A);
[i, j] = find(A == x);
mod2 = @(x) mod(x-1, [m, n])+1;
out.down = mod2([i+1, j ]);
out.up = mod2([i-1, j ]);
out.right = mod2([i , j+1]);
out.left = mod2([i , j-1]);
end然后,我们可以按以下方式运行该函数。
A = magic(4);
out = neighbors(A, 1);
A(out.left(1), out.left(2)); % this returns 15
A(out.right(1), out.right(2)); % this returns 4
A(out.up(1), out.up(2)); % this returns 12
A(out.down(1), out.down(2)); % this returns 13https://stackoverflow.com/questions/60478001
复制相似问题