Функции преобразования типов данных
При обработке сложных данных возникает необходимость в преобразовании их типов. Ниже представлены такие функции, имеющие отношение к массивам ячеек:
- num2cell (A,DIM) – преобразует массив чисел А в массив ячеек, помещая в одну и ту же ячейку элементы, соответствующие одному значению индекса вдоль измерения, указанного параметром DIM. Например, num2cell(A.2) преобразует каждый ряд массива А в отдельную ячейку, cat(DIM.C{:}) осуществляет обратное преобразование.
- num2cell (A) – преобразует массив чисел А в массив ячеек и возвращает последний. Каждый элемент А превращается в отдельную ячейку. Возвращаемый массив имеет тот же размер и ту же размерность, что и исходный массив А.
Примеры применения данных функций:
>> A=[1 2; 3 4: 5 6] A=1 23 45 6>> C= num2cell(A.2) C=[1x2 double] [1x2 double] [1x2 double]>> C{1.1} ans =1 2>> C{2.1} ans =3 4>> C{3.1} ans =5 6>> cat(2.C{:}) ans =1 2 3 4 5 6ans =1 23 45 6>> num2cell(A.[1 2]) ans =[3x2 double]- cell2struct(C. FIELDS. DIM) – преобразует массив ячеек С в массив структур, превращая размерность DIM массива ячеек С в поля структуры S. Размерность 1 – столбцы. Размерность 2 – строки. FILEDS – массив символов или строковый массив ячеек.
Пример преобразования:
>> C={' Привет! '.123. 2+31} C ='Привет!' [123] [2.0000+3.00001] >> f={ 'name', 'number', 'complex'}; >> S=cell2struct(C,f,2) S =name: 'Привет! 'number: 1 2 3complex: 2.0000 + 3.0000i- struct2cell (S) – преобразует массив структур S размером тхп, в котором содержатся р полей, в массив ячеек, так что возвращаемый массив будет иметь размер рхтхп. Если массив структур многомерный, то возвращаемый массив ячеек будет иметь размер, равный [р size(S)]. Схему структуры с названиями полей возвращаемый массив ячеек не содержит. Пример такого преобразования приводится ниже:
>> C=struct2cellS) C ='Привет!'[ 123] [2.0000+3.0000i]