Я уверен, что должно быть элегантное решение для этого (в MATLAB), но я просто не могу думать об этом прямо сейчас.Уборка списка
У меня есть список с [classIndex, начало, конец], и я хочу, чтобы свернуть индексы последовательных классов в одну группу, например, так:
Это
1 1 40
2 46 53
2 55 55
2 57 64
2 67 67
3 68 91
1 94 107
Если включить в этот
1 1 40
2 46 67
3 68 91
1 94 107
Как это сделать?
EDIT
Ничего, я думаю, что я получил его - это почти как fmarc's solution, но получает индексы право
a=[ 1 1 40
2 46 53
2 55 55
2 57 64
2 67 67
3 68 91
1 94 107];
d = diff(a(:,1));
startIdx = logical([1;d]);
endIdx = logical([d;1]);
b = [a(startIdx,1),a(startIdx,2),a(endIdx,3)];
Да, это то, что я искал. – Jonas