我有一个 2D 矩阵,我想找到该矩阵中 (i,j) 的邻域,其中 x 和 y 方向的大小分别为 M 和 N。我知道这很容易做到,但我的问题是当 (i,j) 接近角点并且 M 和 N 很大时!在这种情况下,我不想超出矩阵。 MATLAB 中是否有任何函数或简单的解决方案可以解决此问题?
如果我理解正确,您想从矩阵中提取子矩阵,子矩阵以行为中心i-M
to i+M
和列j-N
to j+N
.
如果是这种情况,并且您想避免选择无效索引,则可以使用最小/最大函数来截断选择,例如:
matrix = randi(10,20,15);
siz = size(matrix);
i=2;
j=5;
M=10;
N=3;
selectrows = max(1,i-M):min(siz(1),i+M);
selectcols = max(1,j-N):min(siz(2),j+N);
result = matrix(selectrows, selectcols);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)