generate_model.m
上传用户:l56789
上传日期:2022-02-25
资源大小:2422k
文件大小:1k
源码类别:

图形图像处理

开发平台:

Matlab

  1. % generate_model.m
  2. % written by: Duncan Po
  3. % Date: August 24, 2002
  4. % Generate a random model
  5. % Usage: model = generate_model(nstates, nlevels, zeromean, levndir)
  6. % Inputs:   nstates     - number of states in the model
  7. %           nlevels     - number of levels in the model
  8. %           zeromean    - 'yes' for zero mean model and 'no' for non-zeromean model
  9. %           levndir     - the number of subbands in each level (e.g. [2 2 3 3])
  10. % Output:   model       - the model generated
  11. function model = generate_model(nstates, nlevels, zeromean, levndir)
  12. model.nstates = nstates;
  13. model.nlevels = nlevels;
  14. model.zeromean = zeromean;
  15. model.rootprob = rand(1,nstates);
  16. model.rootprob = model.rootprob./sum(model.rootprob);
  17. for l = 1:nlevels-1
  18.     for k = 1:2.^(levndir(l+1)-levndir(1))
  19.         model.transprob{l}{k} = rand(nstates);
  20.         for m = 1:nstates
  21.             model.transprob{l}{k}(:, m) = model.transprob{l}{k}(:, m)...
  22.                 ./sum(model.transprob{l}{k}(:, m));
  23.         end;
  24.     end;
  25. end;
  26. for l = 1:nlevels
  27.     for k = 1:2.^(levndir(l)-levndir(1))     
  28.         if strcmp(zeromean, 'yes') == 0
  29.             model.mean{l}{k} = rand(1,nstates);
  30.             for m = 1:nstates
  31.                 model.mean{l}{k}(m) = model.mean{l}{k}(m)*(10.^m);
  32.             end;
  33.         end;
  34.         model.stdv{l}{k} = rand(1, nstates);
  35.         for m = 1:nstates
  36.             model.stdv{l}{k}(m) = model.stdv{l}{k}(m)*(10.^m);
  37.         end;
  38.     end;
  39. end;