簡體   English   中英

為每個X繪制兩個Y的多個值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM