Convert matlab index vector to 2D array based on gaps
显示 更早的评论
Hi all,
I am asking to get feedback on my code and see if there are other ways to programme this basic algorithm more efficiently or elegantly.
out = segments([1 end]); % Start point of first interval
for idx = find(diff(segments) > 1) % Iterate over gaps
out(end, 2) = segments(idx); % End point of current interval
out(end + 1, 1) = segments(idx + 1); % Start point of next interval
end
out(end, 2) = segments(end); % End point of last interval
out(:, diff(out, [], 2) == 0) = []; % Remove point intervals
E.g., for segments = [12 13 14 16 17 18], the output out = [12 14; 16 18] noting the gap between 14 and 16.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!