Присваивание с помощью функции deal. Тестирование имен массивов ячеек.
С помощью функции deal возможно множественное присваивание входных данных выходным:
- [A.B,C,…]=deal(X,Y,Z,…) – обеспечивает последовательное присваивание входных данных выходным, то есть А=Х, B=Y, C=Z и т. д.;
- [A,B,C….]=deal(X) – присваивает единственный вход всем выходам, т. е. А=Х, В=Х, С=Х и т. д.
Возможен ряд полезных применений функции deal:
- [S.FIELD]=deal (X) – присваивает всем полям FIELD структуры S значения X. Если S не существует, то нужно использовать конструкцию [S(1:M)*.FIELD]= deal(X);
- [X{:}]=deal (A. FIELD) – копирует поля FIELD структуры А в массив ячеек X. Если X не существует, следует использовать конструкцию [X{1:M}]=deal (A.FIELD);
- [A,B,C,…]=deal (X{:}) – копирует содержимое массива ячеек X в отдельные переменные А, В, С,…;
- [A,B,C,…]=deal(S.FIELD) – копирует содержимое поля FIELD массива структур S в отдельные переменные А, В, С,…;
Следующий пример иллюстрирует применение функции deal:
>
>
[X,Y.Z]
=
deal(
1.2
+
3i
,
'Привет!'
)
X
=
1
Y
=
2.0000
.
+
3.0000i
Z
=
Привет!
>
>
[X Y Z]
=
deal (
'Привет!'
)
X
=
Привет!
Y
=
Привет!
Z
=
Привет!
Тестирование имен массивов ячеек
Ввиду обилия типов данных в системе MATLAB часто возникает необходимость в их тестировании [Помимо функций iscell и iscellstr вы всегда можете использовать для тестирования массивов ячеек функцию (имя объекта, 'cell') и команду whos имя объекта. – Примеч. ред.]. Для тестирования массивов ячеек может использоваться функция isсеll(С), которая возвращает логическое значение 1, если С – массив ячеек, и 0 в противном случае. Это поясняют следующие примеры:
>
>
t
=
iscell(A)
t
=
1
>
>
B
=
[
1
2
3
];
>
>
iscell(B)
ans
=
0