⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generatesample.m

📁 Continuous Profile Models (CPM) Matlab Toolbox.
💻 M
字号:
function [samples, states]= generateSample(G,numSamples)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% generate a random numbersetRandomSeed;kk=1;while (kk<=numSamples)  tmpStates=zeros(G.numRealTimes,2);  %display(['Working on k=' num2str(kk)]);  startOver=0;  tmpSamp = zeros(1,G.numRealTimes);  %% stochastically pick a start state  startState = sampleDiscreteDistribution(G.statePrior);  %% emit a symbol  tmpSamp(1)=emitSymbol(G,startState,kk);  tmpStates(1,:)=G.stateToScaleTau(startState,:);	  lastState=startState;  for ii=2:G.numRealTimes    if (~startOver)      tmpTrans = G.stateTrans{kk};      nxtState = sampleDiscreteDistribution(tmpTrans(lastState,:));      timeState=G.stateToScaleTau(nxtState,2);      %[ii nxtState timeState]      if (ii~=G.numRealTimes) & (timeState==G.numTaus)	startOver=1;	display('Starting over');	break;      end      lastState=nxtState;      tmpSamp(ii)=emitSymbol(G,nxtState,kk);      tmpStates(ii,:)=G.stateToScaleTau(nxtState,:);	    end  end    if (~startOver)    samples{kk}=tmpSamp;    states{kk}=tmpStates;    kk=kk+1;    %kk  endendreturn;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Given a state, emit a symbolfunction symbol = emitSymbol(G,state,sampleNum)z = G.z(G.stateToScaleTau(state,2));phi = 2.^G.scales(G.stateToScaleTau(state,1));u = G.u(sampleNum);%if (isempty(phi))%  keyboard;%endmyMu = z*phi*u;sigma = G.sigmas(sampleNum);symbol = randn*sigma + myMu;

⌨️ 快捷键说明

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