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

📄 blocklen.m

📁 JLAB is a set of Matlab functions I have written or co-written over the past fifteen years for the p
💻 M
字号:
function[L,ia,ib]=blocklen(x,delta)%BLOCKLEN Counts the lengths of 'blocks' in an array.%%   Suppose X is a column vector which contains blocks of identical%   values, e.g. X=[0 0 0 1 1 3 2 2 2]';%%   L=BLOCKLEN(X) counts the lengths of contiguous blocks containing%   identical values of X, and returns an array L of size SIZE(X).%   Each elements of L specifies the length of the block to which the%   corresponding element of X belongs.%%   In the above example, L=[3 3 3 2 2 1 3 3 3]';%%   [L,IA,IB]=BLOCKLEN(X) optionally returns indices IA and IB into%   the first and last elements, respectively, of each block.%%   [...]=BLOCKLEN(X,D) defines the junction between two blocks as%   locations where ABS(DIFF(X))>D.  Thus D=1 is a 'rate of change'%   definition, and X=[1 2 3 5 6 10 16 17 18]'; will yield the same %   result for L as in the previous example.%%   Usage: [L,ia,ib]=blocklen(x);  %   _________________________________________________________________%   This is part of JLAB --- type 'help jlab' for more information %   (C) 2000, 2004 J.M. Lilly --- type 'help jlab_license' for details    % 06.09.04 JML fixed incorrect IA, IB output lengthif strcmp(x,'--t')  blocklentest;return;endif nargin==1  delta=0;endii=[1:length(x)]';index=find(diff(x)~=delta);ia=[1;index+1];ib=[index;length(ii)];L=zeros(size(ii));L(ia)=ib-ia+1;L=cumsum(L);L0=zeros(size(ii));ib2=ib(1:end-1);ia2=ia(1:end-1);L0(ib2+1)=ib2-ia2+1;L0=cumsum(L0);L=L-L0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function[]=blocklentestx= [0 0 0 1 1 3 2 2 2]';y= [3 3 3 2 2 1 3 3 3]';reporttest('BLOCKLEN with D==0',all(y==blocklen(x)))x=[1 2 3 5 6 10 16 17 18]';reporttest('BLOCKLEN with D==1',all(y==blocklen(x,1)))

⌨️ 快捷键说明

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