用matlab进行运算。现在有一个大量数据的表格,判断每一行数据是否连续40次或是更多,返回每一行连续的编号。
你好,请问你所说的连续是指1,2,3,4这种序列吗?
给个例子,仅供参考
clc;clear
A = randi([1,100],20,100);
A(1,:) = 1:1:size(A,2);
A(2,1:40) = 1:1:40;
A(2,42:100) = 1:1:59;
q = diff(A,1,2)==1;
list = [];
for i = 1:1:size(q,1)
j = 1;
while(j<size(q,2))
if(q(i,j))
c = 0;
while(q(i,j))
c = c+1;
j = j+1;
if(j>size(q,2))
break;
end
end
if(c>=39)
list = [list;[i,j-c,c+1]];
end
else
j = j+1;
end
end
end
T = table(list(:,1),list(:,2),list(:,3),'variableNames',{'行号','出现连续起始号','出现连续的长度'});
T
例子结果
T =
3×3 table
行号 出现连续起始号 出现连续的长度
____ ____________ ____________
1 1 100
2 1 40
2 42 59