cast
変数を別のデータ型に変換
説明
例
int8 値を uint8 に変換します。
8 ビット整数のベクトルを定義します。
a = int8([-5 5]);
a を符号なしの 8 ビット整数に変換します。uint8 の範囲外である -5 の値は 0 に切り捨てられます。
b = cast(a,"uint8")b = 1×2 uint8 row vector
0 5
32 ビットの符号付き整数の 1 行 3 列のベクトルを作成します。
A = int32([-12 34 56])
A = 1×3 int32 row vector
-12 34 56
データ型が double の複素数を作成します。
p = 1+2i
p = 1.0000 + 2.0000i
A を、変数 p と同じデータ型と実数/複素数に変換します。
B = cast(A,like=p)
B = 1×3 complex
-12.0000 + 0.0000i 34.0000 + 0.0000i 56.0000 + 0.0000i
要素が 32 ビットの符号なし整数である 2 行 3 列のゼロの行列を作成します。
A = zeros(2,3,"uint32")A = 2×3 uint32 matrix
0 0 0
0 0 0
データ型が double の 2 行 2 列のスパース行列を作成します。
p = sparse(2,2,pi)
p = 2×2 sparse double matrix (1 nonzero)
(2,2) 3.1416
A を変数 p と同じデータ型およびスパース性に変換します。
B = cast(A,like=p)
B = 2×3 sparse double matrix
All zero
入力引数
入力配列。スカラー、ベクトル、行列または多次元配列として指定します。A のデータ型は、組み込みデータ型、または指定された新しいデータ型への変換をサポートする他のデータ型にすることができます。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
複素数のサポート: あり
新しいデータ型。"single"、"double"、"int8"、"int16"、"int32"、"int64"、"uint8"、"uint16"、"uint32"、"uint64"、"logical"、または "char" として指定します。
プロトタイプ。スカラー、ベクトル、行列、または多次元配列として指定します。p のデータ型は、組み込みデータ型、または入力データ型からの変換をサポートする他の互換性のあるデータ型にすることができます。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
複素数のサポート: あり
出力引数
出力配列。スカラー、ベクトル、行列または多次元配列として返されます。
拡張機能
使用上の注意および制限:
列挙型入力は、コンパイル時にスカラー値でなければなりません。列挙型の配列はサポートされていません。
使用上の注意および制限:
列挙型入力は、コンパイル時にスカラー値でなければなりません。列挙型の配列はサポートされていません。
cast 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
cast 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
構文
B = cast(A,like=p)では、pがgpuArrayである場合にのみ、出力BがgpuArrayになります。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
cast 関数は分散配列をサポートしますが、次の使用上の注意および制限があります。
構文
B = cast(A,like=p)では、pが分散配列である場合にのみ、出力Bが分散配列になります。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入cast(A,newtype) 構文は、複素数入力を変換するとき、変換結果の虚数部がゼロの場合でも実数/複素数を維持します。
たとえば、double 型の複素数について考えてみます。この数値を single 型に変換します。出力は虚数部がゼロの single 型の複素数になります。
a = complex(1,1e-48);
b = cast(a,"single")b = single 1.0000 + 0.0000i
whos
Name Size Bytes Class Attributes a 1x1 16 double complex b 1x1 8 single complex
0 が返されます。tf = isreal(b)
tf = logical 0
比較として、以前のリリースでは、これと同じ数値を変換すると single 型の実数が返されます。
a = complex(1,1e-48);
b = cast(a,"single")b =
single
1whos
Name Size Bytes Class Attributes a 1x1 16 double complex b 1x1 4 single
1 が返されます。tf = isreal(b)
tf = logical 1
R2022a 以降、構文 cast(A,like=p) は、プロトタイプ p のデータ型が MATLAB® 数値型のサブクラスである場合、p と一致する出力を返します。
たとえば、次のコードは p と同じデータ型の出力を返します。
p = matlab.lang.OnOffSwitchState.on; x = cast(1,like=p)
x =
OnOffSwitchState enumeration
onlogical である x = 1 を返します。R2021b 以降では、構文 cast(A,newtype) の入力引数 newtype で大文字と小文字が区別されます。newtype は、新しいデータ型を表す小文字の文字ベクトルまたは string として指定する必要があります。
たとえば、double の値を int8 データ型に変換するには、cast(1.234,"int8") を使用する必要があります。コマンド cast(1.234,"Int8") は現在はエラーになります。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)