Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-03-27, 21:48   #3
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: [求助]如何把一个包含0和1的矩阵中的相邻的1都加起来

你的这个问题实在不难,但是还是忙活了我一下午。我用c++和matlab写了,但是总体而言matlab更直接,但是c++写出来更快,呵呵,循环太多了,效率不高,仅供你参考。
#include<iostream>
#define M 5
#define N 8
using namespace std;
int main()
{int a[M][N]={{1,0,1,0,1,0,1,1},
{1,0,1,1,1,0,1,0},
{1,0,1,1,1,0,1,1},
{1,0,1,0,1,0,1,0} ,
{1,0,1,0,1,0,1,0}};
}
int max=0;
for(int j=0;j<M;j++)
{
int count=0;
int flag=1;
for(int i=0;i<N;i++)
{
if(a[j][i]==1&&flag)
{ count++; flag=0;}
if(a[j][i]==0)
flag=1;
}
if(max<count)
max=count;
}

for(int i=0;i<M;i++)
{ int CL=0;int k=0;
for(int j=0;j<N;j++)
{

if(a[i][j]==1)
k++;
else
{ if(k!=0)
{ cout<<k<<" "; CL++;
k=0;


}
}
}
if(k!=0)
{ cout<<k<<" "; CL++;
k=0;


}
while (CL++<max)
cout<<"0 ";
cout<<endl;
}
return 0;
}
PS: 关于矩阵,我定义了宏M和N为其维度。到时候你只要修改输入的矩阵和M和N的值就可以了。
laosam280 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
simulink中的3/2坐标变换 hj03063313 MATLAB论坛 2 2012-04-09 12:35
[MATLAB基础] k-nearest neighbor Juicy MATLAB论坛 3 2009-04-25 02:02
[求助]批量删除矩阵元素 walterhj MATLAB论坛 2 2009-03-25 16:33
请教constr函数问题 nibabashiwo MATLAB论坛 0 2009-01-14 14:25
怎样用窗函数截断IIR滤波器脉冲响应 wangzhuzhen MATLAB论坛 0 2008-11-14 14:53


所有时间均为北京时间。现在的时间是 13:06


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.