How to plot a chart(e.g bar chart) given a dublicate x values?

Hi I have 2 arrays
time_duration=[2 4 3 6 7 3 7]
Altitude=[20 30 40 50 60 60 50]
Sometimes, for the same time duration, I have 2 Altitude values. For example for time_duration= 3, I have Altitude = 40 ad 60. I want to plot it so that on the xaxis time_duration=3, I can have altitude 100 ie (40+60) on the yaxis.
I tried with barchart but it is not allowing it as of duplicate values.
bar(time_duration,Altitude)
XData cannot contain duplicate values.
Any suggestions?

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 7 Jul. 2015
Bearbeitet: Andrei Bobrov am 7 Jul. 2015
[a1,~,c1] = unique(time_duration);
A1 = accumarray(c1(:),Altitude(:));
bar(a1(:),A1(:));

1 Kommentar

@Andrei
Anyway I can achieve this without using in-built function?
Thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

time_duration=[2 4 3 6 7 3 7]
Altitude=[20 30 40 50 60 60 50]
[unique_time_duration,jj,kk]=unique(time_duration)
new_Altitude=accumarray(kk,Altitude)
out=[unique_time_duration' new_Altitude]

1 Kommentar

@ Azzi
Anyway I can achieve this without using in-built function?
Thanks

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by