连续数字块的开始/停止值

Ann*_*ann 5 indexing matlab

如果我有一个矢量:

[4,5,6,7,11,12,13,14,21,22,23]
Run Code Online (Sandbox Code Playgroud)

如果没有循环,我怎样才能提取所有连续数字块的开始/结束值,即上述向量的所需结果将是2列向量:

b = 

4   7
11  14
21  23
Run Code Online (Sandbox Code Playgroud)

bra*_*nkz 3

简单的:

a = [4,5,6,7,11,12,13,14,21,22,23];
b = reshape(a(sort([find(a - circshift(a,[0,1]) ~= 1),find(a - circshift(a,[0,-1]) ~= -1)])),2,[])'
Run Code Online (Sandbox Code Playgroud)

输出:

b =

 4     7
11    14
21    23
Run Code Online (Sandbox Code Playgroud)