使用statset更改matlab中的属性

时间:2015-06-18 14:34:54

标签: matlab factor-analysis

尝试在Matlab中更改optimopts函数的factoran属性,即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: []

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用输出参数调用statset(就像在问题开头一样),为您提供了统计工具箱选项的结构,您可以将这些选项传递给factoran等函数。如果显示结构,您将看到它始终包含每个统计工具箱选项的字段,并且每个选项都有一个空值,而不是您指定为输入的值。

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

在没有输出参数的情况下调用statset(就像在问题末尾一样)并使用函数名称(如factoran作为输入)只显示特定函数的默认值。换句话说,如果您未传递选项结构以指定其他值,则这些值将被使用。

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