2016-10-12 1 views
2

Ausführen dieser Befehle in Matlab ArbeitsplatzWas ist der Unterschied zwischen Guss ist() und Typumwandlung (Befehle) in Matlab

a = 10 
b = cast(a,'uint8') 
c = typecast(a,'uint8') 

während ich nach den Werten von b und c I

b erhalten = 10

c = 0 0 0 0 0 0 36 64

auch whos('b') und whos('c') kehrt uint8

+0

Die 8 Zahlen, die 'typecast' zurückgibt, sind die interne Darstellung des' double' Wertes; 'cast' gibt das Ergebnis der üblichen Typumwandlung zurück. – AVK

Antwort

3

Die Antwort aus dem documentation of typecast kommt:

typisieren unterscheidet sich von der MATLAB® Funktion eingegossen, dass es nicht nicht verändern die Eingangsdaten. typecast liefert immer die gleiche Anzahl von Bytes in der Ausgabe Y wie im Eingang X. Zum Beispiel gibt die Umwandlung der 16-Bit-Ganzzahl 1000 in uint8 mit typecast die vollen 16 Bits in zwei 8-Bit-Segmente (3 und 232) und behält somit seinen ursprünglichen Wert (3 * 256 + 232 = 1000). Die Cast-Funktion hingegen schneidet den Eingabewert auf 255 ab.

Verwandte Themen