首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >矩阵周期边界条件Matlab

矩阵周期边界条件Matlab
EN

Stack Overflow用户
提问于 2020-03-01 17:49:35
回答 1查看 697关注 0票数 0

我需要一些帮助,我在网格上有一个矩阵表示点,当给定一个元素时,我想找到它最近的邻居的指数,记住我有周期性的边界条件,所以如果我有元素A(1,1),它的最近的邻居是

N)

  • A(2,1)

  • A(1,2)

  • A(N,1
  • A(1,

1)

其中A是我的矩阵,N是维数,我需要一个代码,它可以找到给定元素的n.n的指数。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-04 05:01:26

下面是我对问题的解释:给定一些周期矩阵A

代码语言:javascript
复制
>> 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个索引的结构。

代码语言:javascript
复制
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

然后,我们可以按以下方式运行该函数。

代码语言:javascript
复制
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 13
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60478001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档