Hi
I Have time variables, such as [01/04/1960(dd/mm/yyyy),23/09/1960, 08/01/1980, 18/11/1980] and corresponding magnitude values[5, 4.2, 6, 7]. I need yearly sum values of magnitudes. So for the year 1960 I am supposed to get 9.2, and for 1980 the value 13.(Actually my table is much bigger, I just gave 2 years values to know the way how to do it).
So how I can get yearly sum values?
Thank a lot!

 Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 20 de Mayo de 2016

1 voto

d={'01/04/1960';'23/09/1960';'08/01/1980';'18/11/1980'}
v=[5; 4.2; 6;7]
a=datevec(d,'dd/mm/yyyy')
[y,~,kk]=unique(a(:,1))
out=[y accumarray(kk,v)]

7 comentarios

davit petraasya
davit petraasya el 20 de Mayo de 2016
Great Azzi. You saved me once more :). Thank you very much!
Azzi the code is working perfectly for single plot. If I want to use in plotyy it is not working
d={'01/04/1960';'23/09/1960';'08/01/1980';'18/11/1980'};
v=[5; 4.2; 6;7];
a=datevec(d,'dd/mm/yyyy');
[y,~,kk]=unique(a(:,1));
out=[y accumarray(kk,v)];
bar(y, accumarray(kk,v));
hold on;
plotyy(nan,nan,dateseries,values)
Here dateseries is (01/01/1965,08/04/1975,03/08/1985) and values correspondly (65,79,85).
What would be error?
Thanks.
Azzi Abdelmalek
Azzi Abdelmalek el 20 de Mayo de 2016
What do you mean by : it's working for single plot?
it is working for
bar(y, accumarray(kk,v));
if I want to continue my coding for making bar and curve together in one plot using by plotyy it is not working.
This is another question which is not related to your original question:
d={'01/04/1960';'23/09/1960';'08/01/1980';'18/11/1980'};
v=[5; 4.2; 6;7];
a=datevec(d,'dd/mm/yyyy');
[y,ii,kk]=unique(a(:,1));
out=[y accumarray(kk,v)];
yyaxis left
bar(datenum(d(ii)), accumarray(kk,v))
d1={'01/01/1965';'08/04/1975';'03/08/1985'}
vc=[65,79,85]
yyaxis right
plot(datenum(d1),vc)
xt=sort(datenum([d(ii);d1]))
set(gca,'xtick',xt)
datetick('x','yyyy','keepticks')
davit petraasya
davit petraasya el 20 de Mayo de 2016
Thank you Azzi for answering to this question also. You are very helpful.
Ice lady
Ice lady el 21 de Ag. de 2016
Dear Azzi,
I have a similar problem to davit and tried to re-write the above to work for me, but failed. My date data is in form YYYY = A(:,1), mm = A(:,2) and dd = A(:,3). My daily data has variable number of entries and is in column A(:,5). I also need to compute annual data totals.
Any suggestions would be greatly appreciated.
Thanks in advance

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 20 de Mayo de 2016

Comentada:

el 21 de Ag. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by