Borrar filtros
Borrar filtros

I need to display a data

2 visualizaciones (últimos 30 días)
Aswas
Aswas el 14 de Jul. de 2015
Editada: Aswas el 18 de Jul. de 2015
Can someone assist please:
  1 comentario
Azzi Abdelmalek
Azzi Abdelmalek el 14 de Jul. de 2015
Editada: Azzi Abdelmalek el 14 de Jul. de 2015
Do you mean for the first week of each month or of what? can you give more details about your first column?

Iniciar sesión para comentar.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 14 de Jul. de 2015
Editada: Andrei Bobrov el 15 de Jul. de 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 comentarios
Aswas
Aswas el 15 de Jul. de 2015
Works, thank you very much.
Aswas
Aswas el 17 de Jul. de 2015
Hi Andrei,
And how can I get only first years max and mean please, not every year?

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by