我有来自不同强度的受试者的刺激数据(比如我们有54种不同的强度),接下来是他们认识到相应刺激的百分比:
x = [0 0 0 0.50 0 0 0 0 0 0 0.5 0 0 0 0 0 0 0 0.125000000000000 0 0.333333333333333 0 0 0.111111111111111 0 0.428571428571429 0 0.285714285714286 0.166666666666667 0 0.1 0 0.400000000000000 0.5 0.4 0.25 0.6 0.727272727272727 0.714285714285714 0.25 0.666666666666667 0.777777777777778 1 0.75 0 1 0.9375 1 1 1 1 1 0.92 0.92]
假设第一个指数是最弱的刺激,最后一个指数最强,可见刺激越强,受试者识别的可能性越大。 我想现在适合这些值的分布,得到称为心理物理曲线的东西(看起来像this)。
我试过的是:
pd = fitdist(x,distribution);
但这会引发错误,我假设是因为x数组中的0。我还能做什么呢?
答案 0 :(得分:0)
正如
中所述Fit a sigmoid to my data using MATLAB
"我认为你可以使用"曲线拟合"在Matlab中的应用程序。你可以在APPS,数学,统计和优化中找到它。 。节"
你要做的是定义两个相同长度的矢量:
之后,查看您的文件,您可以尝试使用" Curve Fitting"在matlab中应用,以适应sigmoid。
按下生成代码按钮后,matlab将创建一个可以产生相同结果的函数。