Matlab:在绘制心理测量函数时使用 gammaln 时出错...
Matlab: Error using gammaln... while plotting psychometric functions
我正在使用工具箱 psignifit 从数据集中绘制心理测量函数。我的代码基本上如下所示:
load data.mat
options = struct;
options.sigmoidname = 'logistic';
result = psignifit(data,options); % this is where the error occurs
result.Fit
result.conf_Intervals
plotPsych(result)
我的数据与工具箱中给出的示例数据的形式基本相同,
data = [...
0.0010, 45.0000, 90.0000;...
0.0015, 50.0000, 90.0000;...
0.0020, 44.0000, 90.0000;...
0.0025, 44.0000, 90.0000;...
0.0030, 52.0000, 90.0000;...
0.0035, 53.0000, 90.0000;...
0.0040, 62.0000, 90.0000;...
0.0045, 64.0000, 90.0000;...
0.0050, 76.0000, 90.0000;...
0.0060, 79.0000, 90.0000;...
0.0070, 88.0000, 90.0000;...
0.0080, 90.0000, 90.0000;...
0.0100, 90.0000, 90.0000];
当我 运行 演示时,plotPsych 函数 returns 应该是一个图形,但是当我执行我的脚本时,我得到以下一系列错误。我的问题是为什么我会收到有关使用 gammaln 的错误消息,什么才是正确的解决方法?
Error using gammaln
Input must be nonnegative.
Error in logLikelihood (line 75)
p = p + gammaln(n - k + b);
Error in psignifitCore>@(X)-logLikelihood(data,options,X(1),X(2),X(3),X(4),X(5)) (line 80)
fun = @(X) -logLikelihood(data, options, X(1), X(2), X(3), X(4), X(5));
Error in fminsearch (line 325)
x(:) = xr; fxr = funfcn(x,varargin{:});
Error in psignifitCore (line 97)
Fit = fminsearch(fun, x0,optimiseOptions); %MATLAB standard choice
Error in psignifit (line 242)
result = psignifitCore(data, options);
Error in signifit_myscript (line 31)
result = psignifit(data,HDDV);
我在过去 运行 我的数据上成功地使用了工具箱,所以我首先尝试重新启动 Matlab,但无济于事。然后我尝试删除 psignifit-master 并将其添加回路径,但这似乎也没有解决问题。
提前致谢。
我在使用 2AFC 数据 运行 psignifit 函数时遇到了同样的问题。
原因很简单,如果您尝试处理超过 0 到 1 限制的数据,例如 1.0000000001
,psignifit 函数会导致此错误消息
我正在使用工具箱 psignifit 从数据集中绘制心理测量函数。我的代码基本上如下所示:
load data.mat
options = struct;
options.sigmoidname = 'logistic';
result = psignifit(data,options); % this is where the error occurs
result.Fit
result.conf_Intervals
plotPsych(result)
我的数据与工具箱中给出的示例数据的形式基本相同,
data = [...
0.0010, 45.0000, 90.0000;...
0.0015, 50.0000, 90.0000;...
0.0020, 44.0000, 90.0000;...
0.0025, 44.0000, 90.0000;...
0.0030, 52.0000, 90.0000;...
0.0035, 53.0000, 90.0000;...
0.0040, 62.0000, 90.0000;...
0.0045, 64.0000, 90.0000;...
0.0050, 76.0000, 90.0000;...
0.0060, 79.0000, 90.0000;...
0.0070, 88.0000, 90.0000;...
0.0080, 90.0000, 90.0000;...
0.0100, 90.0000, 90.0000];
当我 运行 演示时,plotPsych 函数 returns 应该是一个图形,但是当我执行我的脚本时,我得到以下一系列错误。我的问题是为什么我会收到有关使用 gammaln 的错误消息,什么才是正确的解决方法?
Error using gammaln
Input must be nonnegative.
Error in logLikelihood (line 75)
p = p + gammaln(n - k + b);
Error in psignifitCore>@(X)-logLikelihood(data,options,X(1),X(2),X(3),X(4),X(5)) (line 80)
fun = @(X) -logLikelihood(data, options, X(1), X(2), X(3), X(4), X(5));
Error in fminsearch (line 325)
x(:) = xr; fxr = funfcn(x,varargin{:});
Error in psignifitCore (line 97)
Fit = fminsearch(fun, x0,optimiseOptions); %MATLAB standard choice
Error in psignifit (line 242)
result = psignifitCore(data, options);
Error in signifit_myscript (line 31)
result = psignifit(data,HDDV);
我在过去 运行 我的数据上成功地使用了工具箱,所以我首先尝试重新启动 Matlab,但无济于事。然后我尝试删除 psignifit-master 并将其添加回路径,但这似乎也没有解决问题。
提前致谢。
我在使用 2AFC 数据 运行 psignifit 函数时遇到了同样的问题。
原因很简单,如果您尝试处理超过 0 到 1 限制的数据,例如 1.0000000001
,psignifit 函数会导致此错误消息