2016-04-12 15 views

答えて

2

MATLABのtypecast関数は、基になるデータを変更することなくデータ型を変換します。言い換えれば、データ構造の基礎となるメモリ表現を変更せず、単純にuint8の代わりにuint16として扱います。

あなたのケースでは、キャスト後にデータの元の値を保持します。したがって、MATLABがデータ構造のメモリ表現を変更するようにします。 鋳造のこのタイプを実行するには、2つの方法があります。

B = uint16(A); 

結果:

B = 

    4  8  16  32 

B = cast(uint8(A), 'uint16'); 

がuint16の機能への直接呼び出しを-usingキャスト機能を-using

3

あなたはおそらくMatlabがあなたのuint8の値を入れることを期待しています変数uint16に変わります。これは、型変換関数がやっていることではありません。これは、入力から出力までのバイト数を保持します。したがって、あなたの例では、4と8のビット表現をuint16という数字に、それと等しく16と32にマージします。

したがって、4のバイナリ表現は00000100であり、8の表現は00001000であり、 )彼らは0000100000000100、これは2052です。

関連する問題