i have a important question!! ( function "randfixedsum" )
    6 ビュー (過去 30 日間)
  
       古いコメントを表示
    
i successd in create matrix 'x' from "randfixedsum"
in here, 'x' is formed 'double'. and 'x' can recreate as integer by using "round", "ceil", or "floor"
by the way,
how to create 'x' by way for 'integer' by itself?
0 件のコメント
回答 (2 件)
  Roger Stafford
      
      
 2017 年 3 月 28 日
        I think you might prefer to use the following code rather than using randfixedsum and rounding to integers:
   function R = randfixedsumint(m,n,S);
   % This generates an m by n array R.  Each row will sum to S, and
   % all elements are all non-negative integers.  The probabilities
   % of each possible set of row elements are all equal.
   % RAS - Mar. 4, 2017
   if ceil(m)~=m|ceil(n)~=n|ceil(S)~=S|m<1|n<1|S<0
    error('Improper arguments')
   else
    P = ones(S+1,n);
    for in = n-1:-1:1
     P(:,in) = cumsum(P(:,in+1));
    end
    R = zeros(m,n);
    for im = 1:m
     s = S;
     for in = 1:n
      R(im,in) = sum(P(s+1,in)*rand<=P(1:s,in));
      s = s-R(im,in);
     end
    end
   end
   return
0 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Numeric Types についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


