Ich habe eine Struktur, die sowohl eine Matrix ECoG
als auch eine verschachtelte Struktur TextMark
enthält.MATLAB: Suche nach der Zeilennummer eines bestimmten Wertes in einem großen Vektor mit der Funktion find
ECoG
hat 2 Spalten und viele Reihen (10798910x2 doppelt). Die erste Spalte repräsentiert die Werte eines Signals und die zweite Spalte repräsentiert die Zeit.
TextMark
enthält 2 Arrays: times
und text
. times
(26x1 double) enthält Zeitwerte, die Ereignissen entsprechen, die in text
, einem 26x80-char-Array, dargestellt sind.
Ich schreibe ein Skript, das den Index einer bestimmten Zeichenfolge in text
findet und den Zeitwert x
aus dem gleichen Index in times
nimmt.
Ich möchte es dann x
in der zweiten Spalte von ECoG
finden und den Index des Wertes zurückgeben.
x = strmatch('example',output.TextMark.text)
[y] = find(output.ECoG(:,2) == output.TextMark.times(x,:))
Als ich dies ausführen, der zurückgegebene Wert
leere Matrix: 0-by-1
jedoch, wenn ich geben Sie den bekannten Wert von output.TextMark.times(x,:)
x = strmatch('example',output.TextMark.text)
[y] = find(output.ECoG(:,2) == 1.0219e+03)
Der zurückgegebene Wert ist der korrekte Index in ECoG
.
Angesichts der output.Textmark.times(x,:) = 1.0219e+03
Ich weiß nicht, warum der erste Befehl nicht funktioniert.