shufflestates.m

来自「Matlab 马尔科夫计算工具包」· M 代码 · 共 47 行

M
47
字号
function [sortsequence,map] = shufflestates(ipsequence,refsequence)% [sortsequence,map] = shufflestates(ipsequence,refsequence)%% shuffles state sequences such that a heuristically esimtated% permutation matrix between the label distributions is minised% % Input%  ipsequence      input label sequence%  refsequence     reference label sequence%                  (if missing uses ipsequence instead)% Output% sortsequence     reshuffles input sequence% map              mapping used for reshuffling%%ipsequence=ipsequence(:);ipclabels=unique(ipsequence);Kip=length(ipclabels);ipclabpdf=hist(ipsequence,ipclabels);if nargin<2  refclabpdf=sort(ipclabpdf);  Kref=Kip;else  refsequence=refsequence(:);  refclabels=unique(refsequence);  Kref=length(refclabels);  refclabpdf=hist(refsequence,refclabels)end;map=[];for i=1:Kip,  [tmp,pos]=min(abs(ipclabpdf(i)-refclabpdf));  if ~ismember(pos,map)    map=[map pos];  endend;map=[map setdiff(1:Kip,map)];sortsequence=map(ipsequence);  

⌨️ 快捷键说明

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