Присваивание с помощью функции 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 =1Y =2.0000.+ 3.0000iZ =Привет!>> [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