0001 function monomialVector = convertHcMatrixToMonomials(hcMatrix, numberVector, dec)
0002
0003 if ~isfield(dec, 'monomialMatrix')
0004 error('elk:decMonomials:inputError', ['Please add the monomial matrix ' ...
0005 'via addMonomialMatrixDec before using this function']);
0006 end
0007
0008
0009 monomialIndexMatrix = dec.monomialMatrix;
0010 monomialIndexMatrix(monomialIndexMatrix == 0) = dec.nC+1;
0011 hcMatrix = [hcMatrix; ones(1, size(hcMatrix, 2))];
0012
0013
0014 monomialMatrix = ones(size(monomialIndexMatrix, 1), size(hcMatrix, 2));
0015 for iExpo = 1:size(dec.monomialMatrix, 2)
0016 monomialMatrix = monomialMatrix .* ...
0017 hcMatrix(monomialIndexMatrix(:, iExpo), :);
0018 end
0019
0020
0021 monomialMatrix = bsxfun(@times, numberVector(:)', monomialMatrix);
0022
0023
0024 monomialVector = sum(monomialMatrix, 2);