将包含序列的向量除以增量1

时间:2017-03-29 13:58:30

标签: 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方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

您可以使用diff查找运行停止和启动的位置,然后使用生成的逻辑数组(以及逻辑数组的循环移位版本)索引到in以生成{{1 }}

out