2015-06-18 5 views
0

Попытки изменить optimopts свойства функции factoran, а именно, TolX и TolFun в Matlab, но, по-видимому значение все еще оставаясь по умолчанию:использование statset для изменения свойств в MATLAB

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

Вызов statset с аргументом вывода (как и в начале вашего вопроса) дает вам структуру параметров панели статистики, которые вы можете передать таким функциям, как factoran. Если вы отобразите структуру, вы увидите, что она всегда содержит поле для каждой из параметров набора статистики, и у каждого есть пустое значение, отличное от тех, которое вы указали в качестве входных данных.

Вы не «установили» что-либо постоянно (глобальных настроек не существует), вы только что создали структуру, содержащую некоторые параметры. Вы можете снова запустить statset с различными входами, и он просто даст вам другую структуру параметров - опять же, ничего глобального не было установлено.

Вызов statset без выходных аргументов (как и в конце вашего вопроса) и с таким именем функции, как factoran, поскольку ввод только показывает вам значения по умолчанию для определенной функции. Другими словами, это значения, которые будут использоваться, если вы не передали структуру опций для указания других значений.

Это всегда значения по умолчанию для этой функции - вы не можете их изменить. Если вы хотите использовать что-то другое, вы создаете структуру опций и передаете ее.

+0

спасибо за ответ. Я действительно изменил их локально (как вы упомянули не по всему миру), но поскольку одно из значений psi было меньше, чем «0.005», я получал одно и то же предупреждение, и именно поэтому я думал, что он не работает. Изменение «TolFun» на большее значение решило проблему. – Amir