I need to display a data

Can someone assist please:

1 Comment

Azzi Abdelmalek
Azzi Abdelmalek on 14 Jul 2015
Edited: Azzi Abdelmalek on 14 Jul 2015
Do you mean for the first week of each month or of what? can you give more details about your first column?

Sign in to comment.

 Accepted Answer

Andrei Bobrov
Andrei Bobrov on 14 Jul 2015
Edited: Andrei Bobrov on 15 Jul 2015
% data - your data; first column - data+time, second - Power
data = [timeprac1,P];
v = datevec(data(:,1));
a = datenum(unique(v(ismember(v(:,[2,3]),[1 1],'rows'),[1:3]),'rows'));
z = weekday(a);
dd = bsxfun(@minus,2:8,z - a)';
[lo,ii] = ismember(fix(data(:,1)),dd(:));
ii = ceil(ii/7);
out = accumarray(ii(lo),data(lo,2),[],@(x){[mean(x),max(x)]});
add variant, if "first week" - 1-7 January
v = datevec(timeprac1);
lo = v(:,2) == 1 & ceil(v(:,3)/7) == 1;
[a,~,c] = unique(v(lo,1));
out1 = accumarray(c,P(lo),[],@(x){[mean(x),max(x)]});
out = [a, cell2mat(out)];
third variant, here "first week" - first full week (Mon-Sun) each year's
v = datevec(timeprac1);
a = datenum(unique(v(ismember(v(:,[2,3]),[1 1],'rows'),[1:3]),'rows'));
z = weekday(a);
dd = bsxfun(@plus,a + 9 - z,0:6);
[lo,ii] = ismember(fix(timeprac1),dd(:));
ii = ceil(ii/7);
out = accumarray(ii(lo),P(lo),[],@(x){[mean(x),max(x)]});

6 Comments

Andrei Bobrov
Andrei Bobrov on 14 Jul 2015
Edited: Andrei Bobrov on 14 Jul 2015
what is it: v = datevec(timeprac1,P(:,1)); Please see help-doc about datevec.
Please attach your timeprac1 and P.
corrected
Asis! datenum - function of MATLAB. Please rename your script C:\Users\datenum.m
See third variant
Works, thank you very much.
Hi Andrei,
And how can I get only first years max and mean please, not every year?

Sign in to comment.

More Answers (0)

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Tags

Asked:

on 14 Jul 2015

Edited:

on 18 Jul 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!