how to loop for a multiple variables array code?
1 次查看(过去 30 天)
显示 更早的评论
Hello everybody. Just looking for some help about how to do a ´loop´ for the following code. The idea is to do the same the code does for every 30 minutes identified in the ‘C’ array (sometimes the 'C' array is not always 24h). Dataset attached. Thank you.
D = d;
t = time;
t = datevec(t);
[Ut,ia,idx] = unique(t(:,4)); % Unique Hours
Counts = accumarray(idx, 1); % Items In Each Hour
C = mat2cell(D, size(D,1), Counts);
%%setting variables
pws1=smoothdata((C{1,1}(:,[1:30])),'movmedian',3,'omitnan'); % 30 minutes for the period of time (00:00 - 00:30)
%%indentifiying peaks
ax1=subplot(2,2,1); % (2,2,1) for the first 30 minutes, (2,2,2) for the second group of 30 minutes, and so on...
load parts;
[pks,locs,widths1,proms2] = findpeaks(pws1(:,end),y,'MinPeakHeight',35); widths1;
findpeaks(pws1(:,end),y,'Annotate','extents','WidthReference','halfprom');
text(locs+0.5,pks,num2str((1:numel(pks))'));
legend('Filtered Data','Peak','Prominence','Width');
ax1.YAxisLocation = 'right';
ax1.XDir = 'reverse';
ax1.XGrid = 'on';
ax1.YGrid = 'off';
title ('Peaks (00:00 - 00:30)');
ylabel('Peaks identification','FontSize',9,'FontName','Arial','color','default');
xlabel('Altitude/km','FontSize',9,'color','default');
yticklabels('');
xlim(ax17,[75 95]);
ylim(ax17,[16 50]);
camroll(-90);
%%number of peaks found
numberpks1 =(findpeaks(pws1(:,end),y,'MinPeakHeight',20));
5 个评论
Jan
2021-4-26
0:30:1440 produces 30 minute intervals over 24 hours. Afterwards my code checks, how many elements are matching in the current time slot, so the data do not need to have 24 hours.
采纳的回答
Steven Lord
2021-4-24
Consider converting your data array (with the time information) into a timetable and calling retime on it to aggregate each 30 minutes worth of data to compute the max in each period?
Or if your windows need to overlap use the movmax function.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!