MATLAB Function Reference |
Syntax
Description
[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
; ...
Remarks
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, ...
Examples
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 0
Use 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
Note
In many instances, you can access the data in cell arrays and structure fields without using the deal function.
|
These two commands perform the same operation as those used in the previous two examples, except that these commands do not require deal
.
See Also
cell
, iscell
, celldisp
, struct
, isstruct
, fieldnames
, isfield
, orderfields
, rmfield
, cell2struct
, struct2cell
ddeset | deblank |
© 1994-2005 The MathWorks, Inc.