viterbialign.m
来自「Continuous Profile Models (CPM) Matlab T」· M 代码 · 共 49 行
M
49 行
%function scaleAndTimes =% viterbiAlign(G,samples,trace)%%% Do a viterbi alignment for all samplesfunction [scaleAndTimes, varargout] = viterbiAlign(G,allSamples)numSamples = size(allSamples,1);scaleAndTimes = zeros(numSamples,G.numRealTimes,2);if nargout==2 %calculate residuals as well residuals = zeros(1,G.numSamples);endfor ss=1:numSamples display(['Computing viterbi for sample ' num2str(ss)]); tic; thisSamp=squeeze(allSamples(ss,:,:))'; if G.numBins==1 thisSamp=thisSamp'; end scaleAndTimes(ss,:,:) = propagate(G,thisSamp,G.z,ss); toc; %load /u/jenn/temp/viterbi.mat; %warning('h');keyboard; if (nargout==2) %calculate residuals as well if (G.numBins>1) error('needs to be modified to handle numBins>1'); end st = squeeze(scaleAndTimes(ss,:,:)); tempA=allSamples{ss}; tempB=G.u(ss)*2.^(G.scales(st(:,1))); tempC=tempA(:)./tempB(:); myClass = getClass(G,ss); myMu=G.z(st(:,2),myClass,:)'; avgSquareResidual = sqrt(mean((tempC'-myMu).^2)); residuals(ss)=avgSquareResidual; endend %% end over numSamplesif (nargout==2) varargout{1}=residuals;end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?