Undefined function or variable 'lgamma'.
24 次查看(过去 30 天)
显示 更早的评论
Hello experts,
as the title says I have a problem with this undefined 'lgamma'.
I'm trying to run an ANCOVA using the function aoctool() but it stops and throws me that error.
Below I post the entire message:
Undefined function or variable 'lgamma'.
Error in betapdf (line 60)
+ lgamma (a + b) - lgamma (a) - lgamma (b));
Error in betainv (line 87)
h = (betacdf (y_old, a, b) - x) ./ betapdf (y_old, a, b);
Error in finv (line 58)
inv(k) = ((1 ./ betainv (1 - x(k), n/2, m/2) - 1) * n / m);
Error in aoctool>getyvalues (line 777)
crit = sqrt(df1 * finv(1-alpha/bonf, df1, df2));
Error in aoctool (line 335)
[newy, ~, ycov] = getyvalues(allx, allgrps, model, stats, ud);
I'm working on MATLAB R2018b.
Is this related with a MATLAB issue or (most likely) it's just me erroneously defining the ANCOVA variables?
Thank you for your help!
Marco
3 个评论
Star Strider
2021-1-26
I opened betapdf.m in the MATLAB editor, and the last line of the function is 58. That line contains a betaln call, and there are no gamma function calls of any kind in the entire function. (I am using R2020b.)
采纳的回答
Walter Roberson
2021-1-26
I see relevant discussion at https://github.com/wichmann-lab/psignifit/issues/4 . The implications there are that you are picking up a third-party toolbox version of finv that is invoking a third-party betainv that is invoking a third-party betapdf that is asking for lgamma that has not been part of MATLAB for a number of years.
The fix would be to move those that third-party finv (and related) out of your MATLAB path.
By the way, the Mathworks long gamma function is gammaln() these days, and is part of basic MATLAB.
4 个评论
Walter Roberson
2021-2-8
https://miplab.epfl.ch/BrainHack/Practice/Utilities/spm12/external/fieldtrip/external/stats/ shows that lgamma.m is defined in the external/fieldtrip/external/stats directory that is installed with SPM12.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!