MATLAB Function Reference
deal

Deal inputs to outputs

Syntax

• ```[Y1,Y2,Y3,...] = deal(X)
[Y1,Y2,Y3,...] = deal(X1,X2,X3,...)
```

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
```