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?

 採用された回答

Andrei Bobrov
Andrei Bobrov 2015 年 7 月 7 日
編集済み: Andrei Bobrov 2015 年 7 月 7 日

1 投票

[a1,~,c1] = unique(time_duration);
A1 = accumarray(c1(:),Altitude(:));
bar(a1(:),A1(:));

1 件のコメント

yashvin
yashvin 2015 年 7 月 9 日
@Andrei
Anyway I can achieve this without using in-built function?
Thanks

サインインしてコメントする。

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 7 日

0 投票

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 件のコメント

yashvin
yashvin 2015 年 7 月 9 日
@ Azzi
Anyway I can achieve this without using in-built function?
Thanks

サインインしてコメントする。

カテゴリ

質問済み:

2015 年 7 月 7 日

コメント済み:

2015 年 7 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by