Ich habe einen Algorithmus, der das Signal basierend auf einigen Parametern zerhackt und in einer Struktur speichert.Zuordnung von Signalsegmenten zu ihrem Signal
Code:
classdef Container < handle
properties
segments = struct('signal', {}, 'time', {});
end
methods
function this = addsignal(this, varargin)
interval = diff(varargin{2});
[~, locations] = findpeaks(interval,'THRESHOLD',0.7)
edges = [0; locations; numel(varargin{1})+1]; %note that 0 and one past the end is on purpose
newsegments = struct('signal', cell(numel(edges)-1, 1), 'time', cell(numel(edges)-1, 1), 'error', []);
%this loop works for no peaks, 1 peak and more than one peak (because of the 0 and numel+1)
for edgeidx = 1 : numel(edges) - 1
newsegments(edgeidx).signal = varargin{1}((edges(edgeidx)+1 : edges(edgeidx+1)-1));
newsegments(edgeidx).time = varargin{2}(edges(edgeidx)+1 : edges(edgeidx+1)-1);
end
this.segments = [this.segments; newsegments]; %and append structure
end
Dies ist, wie ich diese Funktion aufrufen:
file1 = 'file'
signal1 = file1.yaxis
time1 = file1.xaxis
file" = 'file'
signal2 = file2.yaxis
time2 = file2.xaxis
f = ltifilter.container(); % ltifilter is a package
f.addsignal(signal1,time1);
f.addsignal(signal2,time2);
f.addsignal(signal3,time3);
Wenn ich mit allen Signalen aufrufen, wird segments
Struktur haben alle die gehackten Segmente des all-Signal kombiniert, gibt ist keine Möglichkeit zu sagen, welches Segment zu welchem Signal gehört, ich möchte die Segmente wie folgt dem übergeordneten Signal zuordnen:
Jeder möglicher Vorschlag
Sie nennen es wirklich mit der Eingabe 'signal1' und ist das der Name, den Sie in der Struktur speichern möchten? – Finn
ja, sowas. – user5603723
hat meinen Code bearbeitet, um zu zeigen, wie die Signale importiert werden. – user5603723