www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoptimrunner/private/pRunCell2VarCell.m
function freevals = pRunCell2VarCell(obj, freevalcell) %PRUNCELL2VARCELL Convert output data from cell-per-run to cell-per-variable. % % FREEVALS = PRUNCELL2VARCELL(FREEVALCELL) converts a cell array of % output data that contains a single cell for each run into a cell array % of data that contains a single cell for each variable. % Copyright 2006 The MathWorks, Inc. VarLen = obj.InputDataLengths(obj.FreeVariableIndices); k = 1; freevals = cell(1, length(VarLen)); for n = 1:length(freevals) tmp = cellfun(@(x) permute(x(:, k:k+VarLen(n)-1), [3 2 1]), ... freevalcell, 'UniformOutput', false); nSol = cellfun('size', tmp, 3); maxnSol = max(nSol); tmp = cellfun(@(x) cat(3, x, NaN*ones(1, VarLen(n), maxnSol - size(x, 3))), ... tmp, 'UniformOutput', false); freevals{n} = cat(1, tmp{:}); k = k+VarLen(n); end