| MATLAB Function Reference | ![]() |
表示
[Y1,Y2,Y3,...] = deal(X) [Y1,Y2,Y3,...] = deal(X1,X2,X3,...)
詳細
[Y1,Y2,Y3,...] = deal(X)
は、1つの入力を要求される出力すべてにコピーします。Y1= X, Y2 = X, Y3 = X, ...と等価です。
[Y1,Y2,Y3,...] = deal(X1,X2,X3,...)
は、Y1 = X1; Y2 = X2; Y3 = X3; ... と等価です。
注意
deal
は、コンマで区切られた拡張リストによるセル配列や構造体を用いるときに、特に便利です。いくつかの便利な構造があります。
[S.field] = deal(X)
は、構造配列 S内の field という名前のフィールドをすべてに、値X を設定します。S が存在しなければ、[S(1:m).field] = deal(X) を使います。
[X{:}] = deal(A.field)
は、fieldという名前のフィールドの値を、セル配列 Xにコピーします。X が存在しなければ、[X{1:m}]
= deal(A.field) を使います。
[Y1,Y2,Y3,...] = deal(X{:})
は、セル配列 Xの内容を、別個の変数 Y1,Y2,Y3,...にコピーします。
[Y1,Y2,Y3,...] = deal(S.field)
は、field という名前のフィールドの内容を、別個の変数 Y1,Y2,Y3,... にコピーします。
例題
4要素からなるセル配列の内容を、4個の別個の出力変数にコピーするために、dealを使います。
C = {rand(3) ones(3,1) eye(3) zeros(3,1)};
[a,b,c,d] = deal(C{:})
a =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
b =
1
1
1
c =
1 0 0
0 1 0
0 0 1
d =
0
0
0
構造体配列内のすべての nameフィールドの内容を取り出すために、dealを使います。
A.name = 'Pat'; A.number = 176554; A(2).name = 'Tony'; A(2).number = 901325; [name1,name2] = deal(A(:).name) name1 = Pat name2 = Tony
| ddeunadv | deblank | ![]() |