我过去使用过Excel,但是包括Poisson-Distribution在内的计算都花了一段时间,这就是为什么我改用SQL的原因。很快,我意识到SQL可能不是解决统计问题的合适解决方案。最后,我决定切换到Matlab,但我一点也不习惯,我的问题是:
我导入了一个.csv表,并且有两列带有值的,例如A和B(110 x 1双)这些值都是我的泊松计算的输入值。由于我想至少计算前20个事件,因此我创建了一个变量[[z = 1:20。
当我现在计算时,新= Poisspdf(z,A),它说类似非标量参数的大小必须匹配。Z仅具有20条记录,但A
和l均具有110条记录。因此,我将Z = 1:110展开并转置:Znew = Z。当我现在尝试执行实际计算时:结果= Poisspdf(Znew,A)。* Poisspdf(Znew,B)
我总是只得到一个100x1的向量,但我想要的是一个矩阵,对于A和B的每个记录都是20x20(根据我对
z
= 1:20的实际选择,我只更改为z = 1:110,因为Matlab告知它们必须匹配大小)。因此,在此20x20矩阵中,每个单元格中始终应该存在略有不同的计算结果(Poisspdf(Znew,A)。* Poisspdf(Znew,B))。例如,在第一个单元格(1,1)中,我想要得到Poisspdf(0,A的值)。* Poisspdf(0,B的值),在储存格(1,2)中:Poisspdf(0,A的值)。* Poisspdf(1,B的值),在储存格(2,1)中:Poisspdf(1,A的值)。* Poisspdf(0,B的值),依此类推...假设它位于“格式”单元格(行,列)最后,我想对每个20x20矩阵的某些部分求和,并在新列中显示求和部分的结果。有人可以提供帮助吗?非常感谢!
Excel中的泊松矩阵
在Excel中具有泊松函数:POISSON(x,μ,FALSE)=平均值为Poisson分布的x值处的概率密度函数值f(x)。
例如上表中的AD313单元有以下计算:
= POISSON(0; A的第一值; FALSE)* POISSON(0; B的第一值; FALSE)
,在AD314单元格中= POISSON(1; A的第一个值; FALSE)* POISSON(0; B的第一个值; FALSE)
,在AE313单元格中
= POISSON(0; A的第一值; FALSE)* POISSON(1; B的第一值; FALSE)
,依此类推。
clear; clc
% These are the lambdas parameters for the Poisson distribution
lambdaA = 100;
lambdaB = 200;
% Generating Poisson data here
A = poissrnd(lambdaA,110,1);
B = poissrnd(lambdaB,110,1);
% Get the first 20 samples
zA = A(1:20);
zB = B(1:20);
% Perform the calculation
results = poisspdf(zA,lambdaA) * poisspdf(zB,lambdaB)';
% Sum
sumFinal = sum(results,2);
让我知道您是否正在尝试这样做。