gpt4 book ai didi

python - 如何创建加权二维直方图

转载 作者:行者123 更新时间:2023-12-05 07:39:26 29 4
gpt4 key购买 nike

加权一维直方图看起来非常简单。如何在给定权重向量 w 的情况下实现二维加权直方图?

MATLAB:

x = randn(4,1);            //some random x input
y = randn(4,1); //some random y input
w = [10, 20, 30, 40]; //weight to be assigned to corresponding data point in the generated histogram, i.e. the pixel intensity value

figure;
H = histogram2(x,y); //Matlab built-in 2D histogram

我应该如何在上面的代码片段中使用 w 来获得加权二维直方图函数。

*首选 MATLAB 代码,但也可以接受 Python。

最佳答案

我正在分享我从我的一些旧代码中获取的加权二维直方图...

function f  = hist2dw(x,y,weights,xedges,yedges)
%all inputs should be vectors
[~,xbin] = histc(x,xedges);
[~,ybin] = histc(y,yedges);

xbin(xbin==0) = inf;
ybin(ybin==0) = inf;
xnbin = numel(xedges);
ynbin = numel(yedges);

xy = xbin * ynbin + ybin;

[xyu,id] = unique(xy);
xyu(end) = []; % remove Inf bin
id(end) = [];
hstres = histc(xy,xyu);
hstres = hstres.*weights(id); % add the weights to the histogram
f(ynbin,xnbin)=0; % preallocate memory
f(xyu-ynbin) = hstres;

下面是一个如何使用它的例子:

x = rand(1000,1);
y = rand(1000,1);
w=[ones(900,1) ; 5*ones(100,1) ];
edg=0:0.01:1;

imagesc(edg,edg,hist2dw(x(:),y(:),w(:),edg,edg));colorbar

enter image description here

关于python - 如何创建加权二维直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47106963/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com