Es macht die resultierende Matrix von nan
eine Matrix, die der single-precision data type ist, die Gleitkommazahlen mit einfacher Genauigkeit enthält. Wenn Sie eine einfache Genauigkeit wünschen, müssen Sie dies explizit angeben, andernfalls verwenden Octave und MATLAB standardmäßig die doppelte Genauigkeit.
Sie können die Klasse der Ausgabe mit class
überprüfen.
class(nan(3, 4, 5, 'single'))
% 'single'
class(nan(3, 4, 5))
% 'double'
Soweit die gleichen sucht, sie wird gleich aussehen, bis Sie versuchen, Startnummern zu speichern, die den Zahlenbereich überschreiten, die mit einfacher Genauigkeit Gleitkommadarstellung dargestellt werden können. Dies liegt daran, dass Zahlen mit einfacher Genauigkeit die halbe Speichermenge verwenden, die doppelte Genauigkeitszahlen haben.
a = nan(1, 1, 'single');
a(1) = 1e-64
% 0
b = nan(1, 1);
b(1) = 1e-64
% 1.000e-64
Auch wenn wir die Variablen mit whos
inspizieren können wir die Größendifferenz bestätigen.
a = nan(1,1,'single');
b = nan(1,1)
whos('a', 'b')
% Variables in the current scope:
%
% Attr Name Size Bytes Class
% ==== ==== ==== ===== =====
% a 1x1 4 single
% b 1x1 8 double
Die Dokumentation auf nan ist hier http://se.mathworks.com/help/matlab/ref/nan.html gefunden, und Sie können Informationen zu Datentypen hier https finden: //en.wikipedia. org/wiki/Data_type – patrik
Was meinen Sie, Sie können die Dokumentation für die 'nan' Funktion nicht finden? Du tippst einfach "help nan" beim Octave Promp. Dies ist dort dokumentiert: "Das optionale Argument CLASS gibt den Rückgabetyp an und kann entweder" double "oder" single "sein. – carandraug
Huh, warum ist es nicht Großschreibung-empfindlich? –