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

我有绘制双变量高斯分布的工作代码。通过调整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())


守着星空守着你
浏览 173回答 2
2回答

慕少森

是否可以在绘图之前为每个帧创建标准化数组,然后绘制这些数组?确实是可能的。在您的情况下,您可能需要在绘图之前在两个值之间重新调整数组,例如-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。现在在绘制动画时,图像右侧的轴不会改变。

牛魔王的故事

PDFs[0].max()您的问题是找到所有帧的最大值PDFs[1].max()。您为什么不在plotmvs所有计划的帧上运行以找到绝对最大值PDFs[0],PDFs[1]然后animation使用这些绝对最大值运行您的绘图以标准化您的图?这样,colorbar所有帧都将是相同的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python