matlab如何实现每10个数据,全部满足条件才输出?
数据如图所示,如何用matlab编程实现,每连续10个数据,如果满足全部大于100,就把这10个数据输出?这列数据名称为TIME。自己写了一段代码,只用最内层循环可以实现...
数据如图所示,如何用matlab编程实现,每连续10个数据,如果满足全部大于100,就把这10个数据输出?这列数据名称为TIME。自己写了一段代码,只用最内层循环可以实现,但是加了最外层循环就无法实现了,代码如下:
for i=1:93195
for j=i:i+9
count=0;
if TIME(j)>100
count=count+1;
end
if count==10
for j=i:i+9
disp(TIME(j));
end
end
end
end 展开
for i=1:93195
for j=i:i+9
count=0;
if TIME(j)>100
count=count+1;
end
if count==10
for j=i:i+9
disp(TIME(j));
end
end
end
end 展开
1个回答
展开全部
% TIME = textread('*.txt');
clc;
clear all;
TIME = randi ([0,1000] ,10000,1);%这个是我自己随机产生的数组,你用txtread读入就可以了
[num1,~] = size (TIME);
num2 = rem (num1,10);
num3 = (num1 - num2)/10;
TIME_temp = reshape (TIME(1:num3*10),10,num3); %在这一步我去掉了数组最后的几个数,因为这几个数已经不满足连续10个数字的条件,所以就可以不用判断了
for j = 1:num3
[num_find,~] = size (find (TIME_temp(:,j) > 100));
if num_find == 10
fprintf ('第%d个连续符合要求.\n',j);
disp (TIME_temp(:,j));
end
end
clc;
clear all;
TIME = randi ([0,1000] ,10000,1);%这个是我自己随机产生的数组,你用txtread读入就可以了
[num1,~] = size (TIME);
num2 = rem (num1,10);
num3 = (num1 - num2)/10;
TIME_temp = reshape (TIME(1:num3*10),10,num3); %在这一步我去掉了数组最后的几个数,因为这几个数已经不满足连续10个数字的条件,所以就可以不用判断了
for j = 1:num3
[num_find,~] = size (find (TIME_temp(:,j) > 100));
if num_find == 10
fprintf ('第%d个连续符合要求.\n',j);
disp (TIME_temp(:,j));
end
end
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询