为了账号安全,请及时绑定邮箱和手机立即绑定

归一化所有帧的概率函数最大值

归一化所有帧的概率函数最大值

守着星空守着你 2022-03-09 21:22:37
我有绘制双变量高斯分布的工作代码。通过调整COV matrix以考虑特定变量来产生分布。具体来说,每个 XY 坐标都应用radius. 然后COV matrix按一个scaling因子调整 以扩大radiusinx-direction和收缩 in y-direction。其方向由 测量theta。输出表示为probability密度函数(PDF)。我已经标准化了这些PDF值。但是,我PDF为每一帧单独调用一个。因此,最大值会发生变化,因此每个帧的概率将被不同地转换。问题:使用@Prasanth 的建议。是否可以在绘图之前为每个帧创建标准化数组,然后绘制这些数组?下面是我目前用来标准化PDF单个帧的函数。normPDF = (PDFs[0]-PDFs[1])/max(PDFs[0].max(),PDFs[1].max())
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

是否可以在绘图之前为每个帧创建标准化数组,然后绘制这些数组?


确实是可能的。在您的情况下,您可能需要在绘图之前在两个值之间重新调整数组,例如-1和。1因此最小值变为-1,最大值1和中间值相应地缩放。

您也可以选择0and1或任何东西作为最小值和最大值,但让我们选择-1and1以使中间值为0.


为此,请在您的代码中替换:


normPDF = (PDFs[0]-PDFs[1])/max(PDFs[0].max(),PDFs[1].max())

和:


renormPDF = PDFs[0]-PDFs[1]

renormPDF -= renormPDF.min()

normPDF = (renormPDF * 2 / renormPDF.max()) -1

这三行确保normPDF.min() == -1和normPDF.max() == 1。


现在在绘制动画时,图像右侧的轴不会改变。

//img1.sycdn.imooc.com//6228aa340001f3c909090373.jpg

查看完整回答
反对 回复 2022-03-09
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

PDFs[0].max()您的问题是找到所有帧的最大值PDFs[1].max()

您为什么不在plotmvs所有计划的帧上运行以找到绝对最大值PDFs[0]PDFs[1]然后animation使用这些绝对最大值运行您的绘图以标准化您的图?这样,colorbar所有帧都将是相同的。


查看完整回答
反对 回复 2022-03-09
  • 2 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号