如何为双峰概率密度函数编写MatLab代码?

时间:2015-11-08 21:20:17

标签: matlab math statistics

我想在不使用统计工具箱的pdf函数的情况下编写双峰概率密度函数(带有多个峰的PDF,Galtung S)。这是我的代码:

x = 0:0.01:5;
d = [0.5;2.5];  
a = [12;14];    % scale parameter
y =  2*a(1).*(x-d(1)).*exp(-a(1).*(x-d(1)).^2) +  ...
     2*a(2).*(x-d(2)).*exp(-a(2).*(x-d(2)).^2);
plot(x,y)

这是曲线。 plot(x,y)

我想改变数学公式,以摆脱出现在大约的曲线中的下降。 0<x<.52<x<2.5。 有没有办法在代码的第4行中实现x>d(1)x>d(2)以避免y < 0?我不想用循环来解决这个问题,因为我需要稍后将公式转换为CDF。

1 个答案:

答案 0 :(得分:0)

如果您只想为x>max(d1,d2)绘图,可以使用逻辑索引: plot(x(x>max(d)),y(x>max(d))) 如果您要绘制所有x但绘制最大值(y,0),您可以这样写: plot(x,max(y,0))