Функции преобразования типов данных
При обработке сложных данных возникает необходимость в преобразовании их типов. Ниже представлены такие функции, имеющие отношение к массивам ячеек:
- num2cell (A,DIM) – преобразует массив чисел А в массив ячеек, помещая в одну и ту же ячейку элементы, соответствующие одному значению индекса вдоль измерения, указанного параметром DIM. Например, num2cell(A.2) преобразует каждый ряд массива А в отдельную ячейку, cat(DIM.C{:}) осуществляет обратное преобразование.
- num2cell (A) – преобразует массив чисел А в массив ячеек и возвращает последний. Каждый элемент А превращается в отдельную ячейку. Возвращаемый массив имеет тот же размер и ту же размерность, что и исходный массив А.
Примеры применения данных функций:
>
>
A
=
[
1
2
;
3
4
:
5
6
]
A
=
1
2
3
4
5
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
6
ans
=
1
2
3
4
5
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
3
complex:
2.0000
+
3.0000i
- struct2cell (S) – преобразует массив структур S размером тхп, в котором содержатся р полей, в массив ячеек, так что возвращаемый массив будет иметь размер рхтхп. Если массив структур многомерный, то возвращаемый массив ячеек будет иметь размер, равный [р size(S)]. Схему структуры с названиями полей возвращаемый массив ячеек не содержит. Пример такого преобразования приводится ниже:
>
>
C
=
struct2cellS)
C
=
'Привет!'
[
123
]
[
2.0000
+
3.0000i
]