Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#3 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
你的这个问题实在不难,但是还是忙活了我一下午。我用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的值就可以了。 |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
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 |