'statsfminbx' MATLAB 内置 factoran() 出错

'statsfminbx' error with MATLAB built-in factoran()

在对我的数据执行因子分析时,有人可以协助调试以下错误吗?

factoran(x,2) ; %where x is <250*10> double =>
Undefined function 'statsfminbx' for input arguments of type 'cell'.
Error in factoran
[Psi1, nll, lagrange, err, output] = ...

查看代码(来自第 269 行) 后,听起来由于某些原因无法获得载荷的最大似然估计,因此我寻找解决方法克服这个问题。

提前致谢

statsfminbxprivate functionfactoran,只能被factoran自己调用。

如果您创建一个名为 private 的文件夹并将代码放入其中,则只能从直接父文件夹中的代码调用该代码(对于直接父文件夹中的代码,它实际上只在路径上)父文件夹)。这是避免污染命名空间的有用技术。

原来的factorantoolbox\stats\stats\factoran.m,因此可以调用toolbox\stats\stats\private\statsfminbx.m

当您复制 factoran 并将其放在默认文件夹之外时,您的副本将无法再访问私有功能 statsfminbx。您可以尝试制作自己的 private 文件夹副本,将其放在 factoran 副本下方的适当位置,然后将 statsfminbx 副本放入其中。 (另一方面,您可能会发现您随后收到与另一个私有函数的另一个类似问题相关的不同错误)。

PS 除非你有充分的理由这样做,否则制作自己的工具箱代码副本通常不是一个好主意 - 由于这些原因,它很可能会中断。

PPS 你可以通过输入 which statsfminbx 来判断这是问题所在,你会发现它没有找到 - 但是输入 which -all statsfminbx 你会发现它找到了,告诉你它是 stats 文件夹的私有函数。