(有图有真相)如何从一个大矩阵中找出一个特定形式的小矩阵?

hxyairtaobao 2011-10-23 08:28:53

如图所示,我要从一个随机产生的大矩阵中找出一个指定的2*2矩阵,并且统计它们一共出现了多少次,分别在哪。
在程序中实际出现了10个相同元素矩阵,但是我只找到了四个,代码如下,请大家指教,谢谢
flag=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]==b[0][0])//||b[0][0]=='X')
{
//flag=0;
for(x=0;x<p;x++)
for(y=0;y<q;y++)
if(a[i+x][j+y]==b[x][y])
{
flag=1;
continue;
}
else
{
flag=0;
break;
}
if((flag==1))//&&(x==p)&&(y==q))
{
printf("match find at [%d %d]\n", i+1, j+1);
counter++;
continue;
}

}
else
{
break;
}



if(counter!=0)
{
printf("\nPattern found %d times\n", counter);
}
else
{
printf("\nPattern NOT found");
}
getch();
fclose(myFile);
fclose(fp);
...全文
229 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxyairtaobao 2011-10-23
  • 打赏
  • 举报
回复
@honbo
没听说过哦,形态学是什么?
honbo 2011-10-23
  • 打赏
  • 举报
回复
这个,用形态学吧,击中变换。
hxyairtaobao 2011-10-23
  • 打赏
  • 举报
回复
以上两个解,应该不是那样的,顺便疑问一下,为什么我的头像还没有换……
youkuxiaobin 2011-10-23
  • 打赏
  • 举报
回复
左上角为1的时候,看(i+1,j)、(i,j+1)、(i+1,j+1)的值是否满足你的要求
注意你的遍历i的范围i+1《n j+1《m
oneleafpz 2011-10-23
  • 打赏
  • 举报
回复
看看这样行不行
for(i=0;i<n-1;i++)
for(j=0;j<n-1;j++)
if(a[i][j]==1&&a[i+1][j]==0&&a[i][j+1]==0&&a[i+1][j+1]==1)
flag=1;
else
continue;
hxyairtaobao 2011-10-23
  • 打赏
  • 举报
回复
自己解一下吧,break关键字用错了。
yanr1987 2011-10-23
  • 打赏
  • 举报
回复
IME 伤不起啊 帮顶 求解

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧