在Matlab中迭代LinearModel拟合对象的名称

时间:2016-07-19 09:08:25

标签: matlab

我需要迭代大量的LinearModel拟合对象,并以逻辑方式存储它们,最好通过索引方法,例如: model{x,y}。不太优选的是eval(),我已经尝试过并且在任何情况下都不起作用。我收到错误Index exceeds matrix dimensions. - 尽管字符串表达式在eval之外工作正常。

counter = 48;
str=strcat('model',+num2str(counter)); % Dynamic variable name
str1 = strcat(str,'=fitlm(tbl,modelspec)'); % Full string to be evaluated
eval(str1)

理想情况下,我希望这样做,同时迭代x

model{x,y} = fitlm(tbl,modelspec)  % This is the equivalent expression

但我得到的错误是

"Assignment using {} is not allowed for a FitObject."

我认为这与这个问题相似 - 没有答案: Dynamic Objects in Matlab

1 个答案:

答案 0 :(得分:0)

通过分配单元结构来管理解决此问题。 e.g。

model = cell(3,3) % Pre-assign a cell structure
for x=1:3
    for y=1:3
        model{x,y} = fitlm(tbl,modelspec);
    end
end