首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Matlab在矩阵中找到特定值的邻域?

如何通过Matlab在矩阵中找到特定值的邻域?
EN

Stack Overflow用户
提问于 2016-05-14 22:00:20
回答 1查看 36关注 0票数 0

我有一个256*256矩阵,一些值是0(彼此关闭);我找到0值的坐标‘。

代码语言:javascript
复制
% finding missing rows and cols: xi, yi
[row,col]=find(~X);
MIS=[row,col];
MISWO=[MIS zeros(size(MIS,1),1) ];
MISWO
...
   168   224     0
   169   224     0
   170   224     0
   171   224     0
   172   224     0
   173   224     0
   174   224     0

X矩阵的一部分:

代码语言:javascript
复制
0.57    0.58    0.00    0.55    0.54
0.55    0.54    0.00    0.55    0.52
0.56    0.55    0.00    0.55    0.53
0.56    0.55    0.00    0.53    0.52
0.56    0.00    0.00    0.53    0.54
0.55    0.00    0.00    0.53    0.52
0.55    0.00    0.00    0.55    0.51
0.55    0.00    0.00    0.53    0.51
0.56    0.00    0.00    0.51    0.53
0.55    0.00    0.00    0.51    0.51
0.55    0.00    0.00    0.51    0.49
0.55    0.00    0.00    0.52    0.49
0.56    0.00    0.53    0.51    0.48

我的目标是找到具有坐标和值的零值5-10个邻域。

有人能帮我吗?

万事如意

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-15 21:31:01

为了在每个零像素周围的5x5盒中找到所有最近的邻居,我们可以使用2d卷积:

代码语言:javascript
复制
X1=conv2(double(~X),ones(5),'same')>0; 

这产生了一个二进制矩阵,在所有近邻位置的位置都有1在零像素附近。在没有零的情况下,为所有最近的邻居查找行和科尔是正确的:

代码语言:javascript
复制
[row2 col2]=find(X1.*X);

那么你想要的矩阵是:

代码语言:javascript
复制
MIS2=[row2 col2 X(row2, col2)];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37232336

复制
相关文章

相似问题

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