I need to display a data

2 次查看(过去 30 天)
Aswas
Aswas 2015-7-14
编辑: Aswas 2015-7-18
Can someone assist please:
  1 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2015-7-14
编辑:Azzi Abdelmalek 2015-7-14
Do you mean for the first week of each month or of what? can you give more details about your first column?

请先登录,再进行评论。

采纳的回答

Andrei Bobrov
Andrei Bobrov 2015-7-14
编辑:Andrei Bobrov 2015-7-15
% 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 个评论
Aswas
Aswas 2015-7-15
Works, thank you very much.
Aswas
Aswas 2015-7-17
Hi Andrei,
And how can I get only first years max and mean please, not every year?

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by