标签: matlab sequence
我有一个包含几个增量为1的序列的向量,例如
in = [1:5 8:14 16:20 23:40]
对于每个序列,我想提取序列的起点和终点,即上面的例子我会得到
out = [1 5; 8 14; 16 20; 23 40]
当然,这可以通过for循环和if-conditions的组合来完成,但这不会非常有效和可读。有没有更多的matlab-ish方法来实现这个目标?
答案 0 :(得分:1)
您可以使用diff查找运行停止和启动的位置,然后使用生成的逻辑数组(以及逻辑数组的循环移位版本)索引到in以生成{{1 }}
diff
in
out