Documentation

라이선스가 부여된 사용자만 번역 문서를 볼 수 있습니다. 번역 문서를 보려면 로그인하십시오.

deal

Distribute inputs to outputs

Beginning with MATLAB® Version 7.0 software, you can access the contents of cell arrays and structure fields without using the deal function. See Example 3, below.

Syntax

[Y1, Y2, Y3, ...] = deal(X)
[Y1, Y2, Y3, ...] = deal(X1, X2, X3, ...)
[S.field] = deal(X)
[X{:}] = deal(A.field)
[Y1, Y2, Y3, ...] = deal(X{:})
[Y1, Y2, Y3, ...] = deal(S.field)

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; ...

Examples

Example 1 — Assign Data From a Cell Array

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

Example 2 — Assign Data From Structure Fields

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

Example 3 — Doing the Same Without deal

Beginning with MATLAB Version 7.0 software, you can, in most cases, access the contents of cell arrays and structure fields without using the deal function. The two commands shown below perform the same operation as those used in the previous two examples, except that these commands do not require deal.

[a,b,c,d] = C{:}
[name1,name2] = A(:).name

More About

collapse all

Tips

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, ...

Introduced before R2006a

Was this topic helpful?