问题描述:
请教下MATLAB一个问题啊 我想检测一行数据里面出现连续出现0的次数,
请教下MATLAB一个问题啊
我想检测一行数据里面出现连续出现0的次数,例如数据
12 23 0 0 0 0 23 43 0 0 0 123 32 35 22 0 43 43 53 0 0 0 12 43 54 12 32 0 0 0 132
想用Matlab 检测出现了几次连续的0
出现单个的0不算连续的次数
我再请问下哈,如果现在是这样的数据
0 0 1 2 3 4 11 0 0 0 2 3 2 4 0 2 3 1 2 0 0 1 3 0 0
0 0 0 1 3 4 2 3 0 0 1 3 2 0 2 3 2 1 2 2 1 1 1 1 1 0
0 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 1 2 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0
我只想把四周最边上的0保留,但中间的0,我想用1代替,要怎么处理呢?像上例,我要把第二、第三行中间的0有1代替,但二行,三行两端的0我保留.请问怎么处理呢?
1个回答
分类:
综合
2014-11-04
问题解答:
我来补答
先建立如下.m文件;
function n=cishu1(A);%检测连续0函数
m=length(A);
n=0;
j=1;
while =m
if(A(j)==0)
if (A(j+1)==0)
n=n+1;
end
while A(j)==0&&j~=m
j=j+1;
end
elseif(A(j)~=0)
j=j+1;
end
end
函数调用:
A=[12 23 0 0 0 0 23 43 0 0 0 123 32 35 22 0 43 43 53 0 0 0 12 43 54 12 32 0 0 0 132];
n=cishu1(A);
n=4
代码有不懂的 问我
第二问可以这样做
A=[你需要的矩阵];
[m,n]=size(A);
for i=2:m-1;
for j=2:n-1;
if A(i,j)==0;
A(i,j)=14;
end
end
end
展开全文阅读