Skip to content
Snippets Groups Projects
Select Git revision
  • dc04cb07c053c4dde83c9e773f22a5fdddf81f21
  • master default protected
2 results

index.html

Blame
  • SegmentArray.m 1.69 KiB
    classdef SegmentArray < handle
        properties
            segs;
        end
        methods
            function obj = SegmentArray()
                obj.segs = Segment.empty();
            end
            function add(obj, seg)
                if length(obj.segs) == 0
                    obj.segs(1) = seg;
                else
                    added = false;
                    for k = 1:length(obj.segs)
                        if (obj.segs(k).posStart > seg.posStart) || ...
                            (obj.segs(k).posStart == seg.posStart  && ...
                                obj.segs(k).posEnd > seg.posEnd)
                            obj.segs = [obj.segs(1:k-1), seg, obj.segs(k:end)];
                            added = true;
                            break;
                        end
                    end
                    if ~added
                        obj.segs = [obj.segs(1:end) seg];
                    end
                end
            end
            function remove(obj, idx)
                obj.segs = [obj.segs(1:idx-1) obj.segs(idx + 1:end)];
            end
            function sort(obj)
                [~, ind] = sort([obj.segs.posStart]);
                obj.segs = obj.segs(ind);
            end
            function newSegments = doTheThing2(obj)
                newArray = unique(sort([obj.segs.posStart, obj.segs.posEnd]));
                powDens = zeros(size(newArray));
                newSegments = SegmentArray();
                for k = 1:length(newArray)-1
                    idx = find([obj.segs.posStart]<=newArray(k) & [obj.segs.posEnd]>=newArray(k+1));
                    dens = [obj.segs.powDens];
                    powDens(k) = sum(dens(idx));
                    newSegments.add(Segment(newArray(k), newArray(k+1), powDens(k)));
                end
            end
            function plot(obj)
                
            end
        end
    end