MATLAB Functions | Help Desk |
deal
Deal inputs to outputs
[Y1,Y2,Y3,...] = deal(X) [Y1,Y2,Y3,...] = deal(X1,X2,X3,...)
[Y1,Y2,Y3,...] = deal(X)
copies the single input to all the requested outputs. It is the same as Y1 = X
, Y2 = X
, Y3 = X
, ...
[Y1,Y2,Y3,...] = deal(X1,X2,X3,...)
is the same as Y1 = X1
; Y2 = X2
; Y3 = X3
; ...
deal
is most useful when used with cell arrays and structures via comma separated list expansion. Here are some useful constructions:
[S.field] = deal(X)
sets all the fields with the name field
in the structure array S
to the value X
. If S
doesn't exist, use [S(1:m).field] = deal(X)
.
[X{:}] = deal(A.field)
copies the values of the field with name field
to the cell array X
. If X
doesn't exist, use [X{1:m}] = deal(A.field)
.
[Y1,Y2,Y3,...] = deal(X{:})
copies the contents of the cell array X
to the separate variables Y1,Y2,Y3,
...
[Y1,Y2,Y3,...] = deal(S.field)
copies the contents of the fields with the name field
to separate variables Y1,Y2,Y3,
...
Use deal
to copy the contents of a 4-element cell array into four separate output variables.
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 0Use
deal
to obtain the contents of all the name fields in a structure array:
A.name = 'Pat'; A.number = 176554; A(2).name = 'Tony'; A(2).number = 901325; [name1,name2] = deal(A(:).name) name1 = Pat name2 = Tony