matlab怎么找出一串数中的连续的数字
要求:matlab怎么找出一串数中的连续的数字
来源:https://www.baidu.com/link?url=GlbQhJ6iJZOx1usMa2jk7zKkJyEtTcDu9icYoXbUJiFQKJzyQHMsEKRnX5c9o1LuhVAHVykpaPwiB0rW7LaFZ3Nn1h-ykgyJHluBiOCoQoC&wd=&eqid=d1e3413a00041f70000000025d78e85c
例:
clc;
clear
a = [1 1 2 3 6 7 8 9 10 11 12 14 16 17 19 20 22];%% Arrey objection
b = cell(0,0);% RecordArrey ranking 元胞和数组的区别?
num = [];%记录连续数组长度
ct = 1;%累计数
head = 1;%头
tail = 1;%尾
while(ct<numel(a)) %<numel()用于计算数组中满足指定条件的元素个数
head = ct; %ct为累计头
ct = ct+1; %不断累积
while(ct<=numel(a)&&(a(ct)-a(ct-1))==1) %当ct<a(保证不溢出)的个数且a(ct)-a(ct-1)==1,前一个-后一个==1
ct = ct+1; %则累加
end
tail = ct-1; %否则ct-1位为尾数
b = [b;a(head:1:tail)']; %将第一组数存在元胞中
num = [num; tail-head+1]; %并记录该连续数组长度
end
if(tail<numel(a)) %如果尾数<a数组个数(即意味着)
b = [b;a(tail+1)']; %将最后一个数值单独放在元胞最后,并保持在b中
num = [num; 1]; %将最后数组长度定为1
end
fprintf('最长的连续数组是:\n')
disp(b{max(num)==num})