Während ich den isnan(x)
Operator benutze, bemerke ich, dass der Ausgang ein Array mit 0
s und 1
s ist, ob das Element NaN
ist oder nicht.Indizierung in Isnan
Die logische Möglichkeit, NaN-Elemente herauszufiltern, wäre x(find(~isnan(x)))
, da find()
die Indizes zurückgibt. Als Überraschung für mich gibt x(~isnan(x))
auch das gleiche Ergebnis.
Bei der Überprüfung ist ~isnan(x)
nur ein Array von 1s und 0s, und für den einfachen Fall von x = rand(10,1)
, bekomme ich all(~isnan(x) == ones(10, 1))
als wahr. Aber wenn ich x(ones(10, 1))
ausführen, bekomme ich ein Array mit nur dem ersten Element von x
10 mal wiederholt, wie erwartet.
Was fehlt mir hier?
Werfen Sie einen Blick auf [logische Indexierung] (https://mathworks.com/help/matlab/math/matrix-indexing.html#bq7egb6-1) – m7913d
Auch https://stackoverflow.com/questions/32379805/linear-indexing-logical-indexing-und-all-das – beaker
'x (wahr (10, 1))' wird Ihnen 'x' jedoch zurückgeben. – rlbond