И другие программы этой серии
Рассмотрим первый способ. Для этого создадим файл-сценарий с именем ce.m:
A(1,1)={\'Курить вредно!\'}; A(1,2)={[1 2;3 4]}; A(2,1)={2+3i}; A(2,2)={0:0.1:1}
Примечание
Уже отмечалось, что в командном режиме малая русская буква «с» в строках ведет к переводу строки ввода. Однако в файлах-сценариях, создаваемых в редакторе/отладчике M-файлов, эта недоработка не проявляется. Хотя гарантии в этом, увы, пока нет.
В этом примере задан массив ячеек с четырьмя элементами: строкой символов, матрицей, комплексным числом и одномерным массивом из 11 чисел. Теперь можно вызвать этот массив:
>> ce A =
\'Курить вредно!\' [2x2 double]
[2.0000+ 3.0000i] [1x11 double] >> A(1,1) ans =
\'Курить вредно!\' >> A(2,1) ans = [2.0000+ 3.0000i]
Заметим, что к ячейкам такого массива можно обращаться с помощью индексирования, например в виде A(1,1), A(2,1) и т. д.
При индексации содержимого массив ячеек задается следующим образом:
A{1,1}=\'Курить вредно!\'; A{1,2}=[1 2;3 4]; A{2,1}=2+3i; A{2,2}=0:0.1:1;
270
Типы данных – массивы специального вида
Массивы ячеек
271
Теперь можно ознакомиться с созданным массивом ячеек в командном режиме:
>> A ans =
\'Курить вредно!\' [2x2 double]
[2.0000+ 3.0000i] [1x11 double] >> A{1,1}
ans = Курить вредно! >> A{2,1} ans = 2.0000 + 3.0000i
При серьезной работе с массивами структур (записей) и массивами ячеек полезно иметь дополнительную информацию о списках значений. Для получения такой информации следует выполнить команду help list.
5.8.2. Создание ячеек с помощью функции cell
Для создания массива ячеек может использоваться функция cell:
• cell(N) создает массив ячеек из N×N пустых матриц;
• cell(M,N) или cell([M,N]) создает массив ячеек из M×N пустых матриц;
• cell(M,N,P,…) или cell([M N P …]) создает массив из M×N×P×… пустых матриц;
• cell(size(A)) создает массив ячеек из пустых матриц того же размера, что и массив A;
• cell(объект Java) автоматически преобразует объекты или массивы Java (javaarray) в массив ячеек, элементы которого являются объектами MATLAB.
Следующие примеры поясняют применение данной функции:
>> cell(2) ans =
[ ][ ]
[ ][ ] >> C=cell(2,3) C =
[ ][ ][ ]
[ ][ ][ ] >> C0=zeros(2,3) C0 =
000
000 >> cell(size(C0)) ans =
[ ][ ][ ]
[ ][ ][ ]
Созданные пустые ячейки можно заполнить, используя операции присваивания:
>> C{1,1}=1;C{1,2}=\'Привет\';С{2,1}=\'Hello\';C{2,2}=[1 2; 3 4]; >> C C =
[ 1] \'Привет\' [ ]
\'Hello\' [2x2 double] [ ]
5.8.3.
Начало в части 1