0

尝试更改函数的optimopts属性,factoran即在 Matlab 中,但显然这些值仍保留为默认值:TolXTolFun

 optionsFactoran = statset('TolX',1e-4,'TolFun',1e-4)

然后使用因子分析功能:

[lambda,psi,T,stats,F] = factoran(MyMatrix,10,'optimopts',optionsFactoran);

从这里可以看出,这些值仍然是默认值:

>> statset('factoran')

ans = 

      Display: 'off'
  MaxFunEvals: 400
      MaxIter: 100
       TolBnd: []
       TolFun: 1.0000e-08
   TolTypeFun: []
         TolX: 1.0000e-08
     TolTypeX: []
      GradObj: []
     Jacobian: []
    DerivStep: []
  FunValCheck: []
       Robust: []
 RobustWgtFun: []
       WgtFun: []
         Tune: []
  UseParallel: []
UseSubstreams: []
      Streams: {}
    OutputFcn: []

任何想法表示赞赏。

4

1 回答 1

1

使用输出参数调用statset(就像您在问题开始时所做的那样)为您提供了统计工具箱选项的结构,您可以将其传递给诸如factoran. 如果显示该结构,您会看到它始终包含每个统计工具箱选项的字段,并且每个选项都有一个空值,除了您指定为输入的值。

您还没有永久“设置”任何东西(没有要设置的全局“设置”),您刚刚创建了一个包含一些选项的结构。您可以statset使用不同的输入再次运行,它只会为您提供另一个选项结构 - 再次,没有设置任何全局。

不带输出参数的调用statset(就像您在问题末尾所做的那样)并使用诸如factoraninput 之类的函数名称仅向您显示特定函数的默认值。换句话说,如果您没有传入选项结构来指定其他值,则将使用这些值。

这些始终是该功能的默认值 - 您无法更改它们。如果您想使用不同的东西,您可以创建一个选项结构并将其传入。

于 2015-06-18T20:10:40.273 回答