尝试在Matlab中更改optimopts
函数的factoran
属性,即TolX
和TolFun
,但显然这些值仍然是默认值:
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: []
任何想法都表示赞赏。
答案 0 :(得分:1)
使用输出参数调用statset
(就像在问题开头一样),为您提供了统计工具箱选项的结构,您可以将这些选项传递给factoran
等函数。如果显示结构,您将看到它始终包含每个统计工具箱选项的字段,并且每个选项都有一个空值,而不是您指定为输入的值。
您没有永久“设置”任何内容(没有要设置的全局“设置”),您刚刚创建了包含一些选项的结构。您可以使用不同的输入再次运行statset
,它只会为您提供另一个选项结构 - 同样,没有设置全局。
在没有输出参数的情况下调用statset
(就像在问题末尾一样)并使用函数名称(如factoran
作为输入)只显示特定函数的默认值。换句话说,如果您未传递选项结构以指定其他值,则这些值将被使用。
这些始终是该功能的默认设置 - 您无法更改它们。如果您想使用不同的东西,可以创建一个选项结构并将其传递。