И другие программы этой серии
Примеры применения данной функции:
>> A=[1 2; 3 4; 5 6] A =
12
34
56 >> num2cell(A,2) ans =
[1x2 double]
[1x2 double]
274
Типы данных – массивы специального вида
Многомерные массивы ячеек
275
[1x2 double] >> num2cell(A,[1 2]) ans = [3x2 double]
cell2struct(C,FIELDS,DIM) преобразует массив ячеек C в массив структур вдоль размерности DIM, сохраняя размер массива C по этой размерности в записи структуры. Размерность 1 – столбцы. Размерность 2 – строки. Пример преобразования:
>> C={\'Привет!\',123,2+3i}
C = \'Привет!\' [123] [2.0000+ 3.0000i]
>> f={\'name\',\'number\',\'complex\'};
>> S=cell2struct(C,f,2)
S =
name: \'Привет!\'
number: 123
complex: 2.0000+ 3.0000i
struct2cell(S) преобразует массив структур S размером m×n, в котором содержатся p полей, в массив ячеек, так что возвращаемый массив будет иметь размер p×m×n. Если массив записей многомерный, то возвращаемый массив будет иметь размер, равный [p size(S)]. Пример такого преобразования приводится ниже: >> C=struct2cell(S)
\'Привет!\'
[2.0000 + 3.0000i]
123]
5.9. Многомерные массивы ячеек
5.9.1. Создание многомерных массивов ячеек
С помощью функции cat можно формировать многомерные массивы ячеек. Например, трехмерный массив C формируется следующим образом (m-файл с именем ce2.m):
A{1,1}=\'Курить вредно!\'; A{1,2}=[1 2;3 4]; A{2,1}=2+3i;A{2,2}=0:0.1:1; B{1,1}=\'Пить тоже вредно!\'; B{1,2}=[1 2 3 4]; B{2,1}=2; B{2,2}=2*pi; C=cat(3,A,B);
Теперь можно просмотреть данный массив, имеющий две страницы:
>> ce2
[2x2 double] [1x11 double]
>> C C(:,:,1) =
\'Курить вредно!\'
[2.0000+ 3.0000i] C(:,:,2) =
\'Пить тоже вредно!\' [1x4 double]
[ 2] [ 6.2832]
Этот многомерный массив можно просмотреть с помощью команды cellplot(С). Полученный результат показан на рис.
Начало в части 1