В этом примере показано, как считать и записать данные в и из массива ячеек.
Создайте массив ячеек 2 на 3 с текстом и числовыми данными.
C = {'one', 'two', 'three'; 1, 2, 3}
C=2×3 cell array
{'one'} {'two'} {'three'}
{[ 1]} {[ 2]} {[ 3]}
Существует два способа обращения к элементам массива ячеек. Стройте индексы в сглаженных круглых скобках, ()
, для обращения к наборам камер --для примера, для определения подмножества массива. Индексы заключаются в фигурные скобки, {}
, для ссылки на текст, числа или другие данные в отдельных камерах.
Индексы массива ячеек в гладких круглых скобках относятся к наборам камер. Например, чтобы создать массив ячеек 2 на 2, который является подмножеством C
, используйте гладкие круглые скобки.
upperLeft = C(1:2,1:2)
upperLeft=2×2 cell array
{'one'} {'two'}
{[ 1]} {[ 2]}
Обновляйте наборы камер путем замены их таким же количеством камер. Для примера замените камеры в первой строке C
с массивом ячеек эквивалентного размера (1 на 3).
C(1,1:3) = {'first','second','third'}
C=2×3 cell array
{'first'} {'second'} {'third'}
{[ 1]} {[ 2]} {[ 3]}
Если камеры в вашем массиве содержат числовые данные, можно преобразовать камеры в числовые с помощью cell2mat
функция.
numericCells = C(2,1:3)
numericCells=1×3 cell array
{[1]} {[2]} {[3]}
numericVector = cell2mat(numericCells)
numericVector = 1×3
1 2 3
numericCells
является массивом ячеек 1 на 3, но numericVector
массив типа 1 на 3 double
.
Доступ содержимое камер - чисел, текста, или других данных в камерах - внося в указатель с фигурными скобками. Например, для доступа к содержимому последней камеры C
, использовать фигурные скобки.
last = C{2,3}
last = 3
last
является числовой переменной типа double
, потому что камера содержит double
значение.
Точно так же можно индексировать фигурными скобками, чтобы заменить содержимое камеры.
C{2,3} = 300
C=2×3 cell array
{'first'} {'second'} {'third'}
{[ 1]} {[ 2]} {[ 300]}
Получить доступ к содержимому нескольких камер можно путем индексации фигурными скобками. MATLAB ® возвращает содержимое камер в виде списка, разделенного запятыми. Поскольку каждая камера может содержать другой тип данных, вы не можете назначить этот список одной переменной. Однако список можно назначить тому же количеству переменных, что и камеры. MATLAB ® присваивает переменным в порядке столбцов.
Присвоение содержимого четырёх камер C
в четыре переменные.
[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 'first'
r2c1 = 1
r1c2 = 'second'
r2c2 = 2
Если каждая камера содержит один и тот же тип данных, можно создать одну переменную, применив оператор конкатенации массива []
, в разделенный списками , разделенными запятыми.
Объедините содержимое второй строки в числовой массив.
nums = [C{2,:}]
nums = 1×3
1 2 300