所以我有一列数据,它由数字组成,我必须找到5个相同数字的实例。
因此,例如,8,8,8,8,8,8,8,8,8,9,9,9,5,6,4,7,,6,2,3 等。在这 8 中有发生了 9 次。所以我只想增加一次计数,因为即使有九个 8,我的代码正在做的是取前 8 个并获得 5 个连续数字正在增加。然后它取下一个 8 并增加计数,依此类推,计数变为 5,但我希望它为 1。我想要的是任何数字的第一次出现作为基值并取 5 个连续数字并增加计数. 然后取第 6 个 8 并计算是否有 5 个连续的 8 或那个特定数字。所以,例如,8,8,8,8,8,8,9,9,9,9,9,9,9,9,5,5,5,5,5,1,1,2,2 ,5,4,3,6,7,9,3,4,2,2,2,2,2,1,2,1。在此计数应为 4。
**count=0;
count1=0;
for i=1:length(data)-4
for j=i+1:i+4
if data(i)~=data(j)
count1=0;
break;
else
count1=count1+1;
end
if count1==5 % line 0
count=count+1;
%data(i,1)=data(i+5,1); //line 1 <=comment
%data(i)=data(i+5); //line 2 <=comment
else
continue;
end
end**
If(count_consecutive==5){
count_main=count_main+1; ...
a[i]=a[i+5];// continue for the base value. It should skip all the numbers that were counted in the consecutive count one and take the next number as the base for counting the consecutive numbers}
任何语言的逻辑都可以,因为我的错误在逻辑中 感谢您的帮助。这将不胜感激 :)。
额外的阐述
所以第一个按照我指定的方式只有 5 个连续的 8。因此,第一个将具有输出计数 =1 。在第二个中,有5个连续号码中的4个相同的起始号码。因此输出将是 4,我可以给出的另一个例子是8,8,8,8,8,8,8,8,8,8(十个 8),9,9,9,9,4,5,6 ,4,6,6,6,6,6。在这种情况下,计数应该是 3,因为它有 10 个 8 将计数增加到 2,另外 5 个连续的 6 将计数再增加一次。总数为 3。
现在的错误是我无法将数组索引从 a[i] 跳转到 a[i+5]。所以第一个按照我指定的方式只有 5 个连续的 8。因此,第一个将具有输出计数 =1 。在第二个中,有5个连续号码中的4个相同的起始号码。因此输出将是 4,我可以给出的另一个例子是8,8,8,8,8,8,8,8,8,8(十个 8),9,9,9,9,4,5,6 ,4,6,6,6,6,6。在这种情况下,计数应该是 3,因为它有 10 个 8 将计数增加到 2,另外 5 个连续的 6 将计数再增加一次。总数为 3。我的问题是, 当我的条件得到满足时,我无法在 for 循环中将数组索引从x 跳过/跳转到 x+5 。