Как разделить кратчайший путь по расстоянию - PullRequest
0 голосов
/ 30 мая 2018

У меня кратчайший путь, соединяющий множество точек, где начальная точка A фиксирована.У меня есть общее расстояние, а также попарное расстояние, а также упорядоченные индексы.Я хочу разделить путь: если общее расстояние пути больше определенного значения, я хочу обрезать его и начать новый путь и т. Д.

Мне удалось достичь его с помощью cumsum иaccummary (я использую MATLAB), но это действительно уродливое решение, мне было интересно, есть ли другой способ?

Dmax = max(totdistance);
th   = Dmax/4;                 % threshold
toSplit = distances;           % pairwise distance
nSplit  = cumsum(distances/th);
subs    = floor( nSplit ) + 1;
newPaths = accumarray( subs(:), (1:numel(subs)).', [], @(x) {cumsum(toSplit(x))});

Таким образом, я могу также использовать затраты на общую стоимость и пару, если они предоставляются, вместорасстояние например.

...