[英]plotting two with multiple values of Y for each X
A = [4180,4180,4200,4200,4200,4330,...]
B = [94, 180, 120, 150, 110, 160 ...]
我有2個陣列。
按值排序,每個單元格包含可能相等的值。
B如上圖所示。
我想繪制A vs B,但由於我對A的每個元素都有多個值,因此情節非常難看。
有沒有辦法只為A的每個值保留一個單元格,同時取B中相應單元格的平均值?
例如:
A1 = [4180,4200,4330,...]
B1 = [mean(94,180),mean(120,150,110),...]
一種方法 -
[A1,~,idx] = unique(A,'stable')
B1 = accumarray(idx,B,[],@mean).'
更快的替代品 -
B1 = (accumarray(idx, B)./accumarray(idx,1)).'
要么 -
B1 = (accumarray(idx, B)./histc(idx,1:max(idx))).'
樣品運行
輸入 -
>> A,B
A =
4180 4180 4200 4200 4200 4330
B =
94 180 120 150 110 160
輸出 -
>> A1,B1
A1 =
4180 4200 4330
B1 =
137 126.67 160
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.