genpow.m

来自「GloptiPoly 3: moments, optimization and 」· M 代码 · 共 31 行

M
31
字号
function v = genpow(ndig,sum)
% GENPOW - Internal use only
  
% Generate powers
%
% GENPOW(NDIG,SUM) returns a matrix whose rows are
% all vectors with NDIG ndigits summing up to SUM
% For example GENPOW(3,2) returns [2 0 0;1 1 0;1 0 1;0 2 0;0 1 1;0 0 2]
%
% Used by GENIND

% D. Henrion, 20 November 2003
% Last modified on 16 December 2006
  
if ndig > 1
 v = zeros(1,ndig);
 if sum > 0
  r = 0;
  for k = sum:-1:0
   % Recursive call
   w = genpow(ndig-1,sum-k); rd = size(w,1);
   v(r+1:r+rd,1) = repmat(k,rd,1);
   v(r+1:r+rd,2:ndig) = w;
   r = r+rd;
  end
 end
else
 v = sum;   
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?