Saving the output from a for loop

I am using the following script in MatlabR2015a:
CVO = cvpartition(y2,'k',10);
C=zeros(96,1)
for i = 1:CVO.NumTestSets
trIdx = CVO.training(i);
teIdx = CVO.test(i);
mdl = fitcnb(x1(trIdx, :),y2(trIdx, :),'Distribution', 'kernel')
[label, Posterior] = predict(mdl,x1(teIdx, :))
C(teIdx)=Posterior (:,2);
end
[X,Y,T,AUC] = perfcurve(y2,C,'true','NBoot', 1000); % Curva ROC para os dados de teste do crossval
c1=round(C);
CMat=confusionmat(y1,c1);
How can I save in my workspace the model from each iteration?
Many Thanks,
Elizabeth Vieira

 Respuesta aceptada

Star Strider
Star Strider el 21 de En. de 2016
You can save it as a cell array (note the curly brackets ‘{}’):
mdl{i} = fitcnb(x1(trIdx, :),y2(trIdx, :),'Distribution', 'kernel');
If you want to save the ‘mdl’ cell array after the loop, use the save function to save it to a .mat file. See the documentation for save for details.

3 comentarios

Stephen23
Stephen23 el 21 de En. de 2016
Note that it is also recommended to preallocate cell arrays.
Elizabeth Vieira
Elizabeth Vieira el 22 de En. de 2016
Many thanks!
Star Strider
Star Strider el 22 de En. de 2016
My pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 21 de En. de 2016

Comentada:

el 22 de En. de 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by