Иллюстрированный самоучитель по Matlab

         

Функции преобразования типов данных


При обработке сложных данных возникает необходимость в преобразовании их типов. Ниже представлены такие функции, имеющие отношение к массивам ячеек:

num2cell (A,DIM) — преобразует массив чисел А в массив ячеек, помещая в одну и ту же ячейку элементы, соответствующие одному значению индекса вдоль измерения, указанного параметром DIM. Например, num2cell (A.2) преобразует каждый ряд массива А в отдельную ячейку. cat(DIM.C{:}) осуществляет обратное преобразование.

num2cell (A) — преобразует массив чисел А в массив ячеек и возвращает последний. Каждый элемент А превращается в отдельную ячейку. Возвращаемый массив имеет тот же размер и ту же размерность, что и исходный массив А.

Примеры применения данных функций:

» А=[1 2; 3 4: 5 6] 

А=

1 2

3 4

5 6

»С= num2cell(A.2) 

С=

[1x2 double]

[1x2 double]

[1x2 double] 

»С{1,1} 

ans =



1 2 

»С{2,1} 

ans =

3 4 

»С{3,1} 

ans =

5 б 

» cat(2.C{:}) 

ans =

1 2 3 4 5 6

ans =

1 2

3 4

5 6

» num2cell(A.[l 2]) 

ans =

[3x2 double]

cell2struct(C. FIELDS. DIM) — преобразует массив ячеек С в массив структур, превращая размерность DIM массива ячеек С в поля структуры S. Размерность 1 — столбцы. Размерность 2 — строки. FILEDS — массив символов или строковый массив ячеек.

Пример преобразования:

» С={' Привет! '.123. 2+31}

 С =

'Привет!' [123] [2.0000+3.00001] 

» f={ 'name' , 'number' , 'complex'}; 

» S=cell2struct(C,f,2) 

S = 

name: 'Привет! '

number: 1 2 3

complex: 2.0000+ 3.0000i

struct2cell (S) — преобразует массив структур S размером

тхп,

в котором содержатся

р

полей, в массив ячеек, так что возвращаемый массив будет иметь размер

рхтхп.

Если массив структур многомерный, то возвращаемый массив ячеек будет иметь размер, равный [р size(S)]. Схему структуры с названиями полей возвращаемый массив ячеек не содержит. Пример такого преобразования приводится ниже:

» C=struct2cellS)

С =

'Привет!'

[           123]

[2.0000+3.0000i]



Содержание раздела