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

📄 info_dis_bin_split.m

📁 计算Information Discrepancy中的FDOD函数集
💻 M
字号:
function [ZeroOneSeq, IsSuccess]=info_dis_bin_split(seq1, PSti, TimeBeforeEnd, binSize, Sigma)
% 将输入序列分割成bin0-1化
% 输入:
%      seq1 - 输入的序列, cell型;
%      PSti - 每帧刺激的起始时间;
%      TimeBeforeBin - 选择最后一次刺激前的多少个周期, 比如TimeBeforeEnd=3则是取最后4个周期.
%      binSize - bin的大小, ms单位;
%      Sigma - symbol的集合, 如Sigma=[0 1]或Sigma=[0 1 2];
% 输出:
%      ZeroOneSeq - 0-1化完毕的序列, cell型;
%      IsSuccess - 是否0-1化成功(即是否包含Sigma之外的symbol), 成功 - 1, 失败 - 0.

% bin-splitting
bin=binSize; % bin length = 2ms
N=floor((PSti(end)-PSti(end-TimeBeforeEnd))/bin);
SeqNum=length(seq1);
seq=cell(1,SeqNum);
for i=1:SeqNum
    tmpseq=[];
    for j=0:N-1
        tmpidx=find(seq1{i}>=(PSti(end-TimeBeforeEnd)+j*bin)&seq1{i}<(PSti(end-TimeBeforeEnd)+(j+1)*bin));
        tmp=length(tmpidx);
        tmpseq=[tmpseq;tmp];
    end
    seq{i}=tmpseq;
end
clear tmp tmpidx tmpseq N i j;
%
% 查找序列是否0-1化正确 这需要看tmpidx是否是0%
tmp=[];tmpidx=0;
for i=1:SeqNum
    tmp=find(seq{i}>Sigma(end));
    tmpidx=tmpidx+length(tmp);
end
clear tmp i;
%
clear seq0 seq1;

ZeroOneSeq=seq;
if tmpidx~=0
    IsSuccess=0;
else
    IsSuccess=1;
end

⌨️ 快捷键说明

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