Доступ к данным в массиве ячеек — MATLAB & Simulink
Основное содержимое
Open Live Script
В этом примере показано, как читать и записывать данные в массив ячеек и из него.
Создайте массив ячеек размером 2 на 3 из текстовых и числовых данных.
C = {'один', 'два', 'три'; 1, 2, 3}
C= Массив ячеек 2×3 {'один два три'} {[ 1]} {[ 2]} {[ 3]}
Существует два способа обращения к элементам массива ячеек. Заключите индексы в гладкие круглые скобки, ()
для ссылки на наборы ячеек — например, для определения подмножества массива. Заключите индексы в фигурные скобки, {}
, чтобы ссылаться на текст, числа или другие данные в отдельных ячейках.
Индексирование ячеек с помощью гладких скобок, ()
Индексы массива ячеек в гладких скобках относятся к наборам ячеек. Например, чтобы создать массив ячеек 2 на 2, который является подмножеством C
, используйте гладкие круглые скобки.
верхний левый = C(1:2,1:2)
верхний левый = Массив ячеек 2×2 {'один два'} {[ 1]} {[ 2]}
Обновить наборы ячеек, заменив их таким же количеством ячеек. Например, замените ячейки в первой строке C
массивом ячеек эквивалентного размера (1 на 3).
C(1,1:3) = {'первый','второй','третий'}
C= Массив ячеек 2×3 {'первый второй третий'} {[ 1]} {[ 2]} {[ 3]}
Если ячейки вашего массива содержат числовые данные, вы можете преобразовать ячейки в числовой массив с помощью функция cell2mat
.
numericCells = C(2,1:3)
numericCells= Массив ячеек 1×3 {[1]} {[2]} {[3]}
numericVector = cell2mat(numericCells)
numericVector = 1×3 1 2 3
numericCells
— это массив ячеек 1 на 3, а numericVector
— это массив 1 на 3 типа double
.
Индексирование содержимого с помощью фигурных скобок, {}
Доступ к содержимому ячеек — числам, тексту или другим данным внутри ячеек — с помощью индексирования с помощью фигурных скобок. Например, чтобы получить доступ к содержимому последней ячейки C
, используйте фигурные скобки.последняя = C{2,3}
последняя = 3
last
— это числовая переменная типа double
, поскольку ячейка содержит значение double
.
Точно так же вы можете индексировать с помощью фигурных скобок, чтобы заменить содержимое ячейки.
C{2,3} = 300
C= Массив ячеек 2×3 {'первый второй третий'} {[ 1]} {[ 2]} {[ 300]}
Вы можете получить доступ к содержимому нескольких ячеек, индексируя их фигурными скобками. MATLAB® возвращает содержимое ячеек в виде список, разделенный запятыми . Поскольку каждая ячейка может содержать разные типы данных, вы не можете назначить этот список одной переменной. Однако вы можете назначить список тому же количеству переменных, что и ячейки. MATLAB® присваивает значения переменным в порядке столбцов.
Назначить содержимое четырех ячеек C
четырем переменным.
[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 'первый'
r2c1 = 1
r1c2 = 'второй'
r2c2 = 2
Если каждая ячейка содержит данные одного типа, вы можете создать одну переменную, применив оператор объединения массивов []
к списку, разделенному запятыми.
Объединить содержимое второй строки в числовой массив.
чисел = [C{2,:}]
чисел = 1×3 1 2 300
См. также
ячейка
| Cell2mat
Связанные темы
- Создание массива ячеек
- Многоуровневое индексирование для доступа к частям ячеек
- Списки, разделенные запятыми
У вас есть модифицированная версия этого примера. Хотите открыть этот пример со своими правками?
Вы щелкнули ссылку, соответствующую этой команде MATLAB:
Запустите команду, введя ее в командном окне MATLAB. Веб-браузеры не поддерживают команды MATLAB.
Выберите веб-сайт, чтобы получить переведенный контент, где он доступен, и ознакомиться с местными событиями и предложениями. В зависимости от вашего местоположения мы рекомендуем вам выбрать: .
Вы также можете выбрать веб-сайт из следующего списка:
Европа
Свяжитесь с местным офисом
массивов ячеек символьных векторов — MATLAB & Simulink
Массивы ячеек векторов символов
Чтобы сохранить текст как вектор символов , заключите его в одинарные кавычки. Как правило, вектор символов имеет текст, который вы считаете единым фрагментом. информация, такая как имя файла или метка для графика. Если у вас много фрагментов текста, таких как список имен файлов, вы можете сохранить их в массиве ячеек. Массив ячеек, чей элементы — все векторы символов — это массив ячеек символов векторы .
Создать массив ячеек из символьных векторов
Открыть Live Script
Чтобы создать массив ячеек из символьных векторов, используйте фигурные скобки, {}
, точно так же, как при создании любого массива ячеек. Например, используйте массив ячеек из символьных векторов, чтобы сохранить список имен.
C = {'Ли','Санчес','Джонс','Ян','Ларсон'}
C = 1x5 ячейка {'Ли'} {'Санчес'} {'Джонс'} {'Ян'} {'Ларсон'}
Векторы символов в C
могут иметь разную длину, потому что массив ячеек не требует, чтобы его содержимое имело одинаковый размер. Чтобы определить длины векторов символов в C
, используйте strlength
функция.
L = длина длины(C)
L = 1×5 2 7 5 4 6
Доступ к символьным векторам в массиве ячеек
Open Live Script
Чтобы получить доступ к символьным векторам в массиве ячеек, проиндексируйте его с помощью фигурных скобок, {}
. Извлеките содержимое первой ячейки и сохраните его как вектор символов.
C = {'Ли','Санчес','Джонс','Ян','Ларсон'}; хр = C{1}
хр = 'Ли'
Назначьте другой вектор символов первой ячейке.
C{1} = "Ян"
C = 1x5 ячейка {'Ян'} {'Санчес'} {'Джонс'} {'Ян'} {'Ларсон'}
Чтобы обратиться к подмножеству ячеек, вместо их содержимого индексируйте с помощью круглых скобок.
C(1:3)
анс = 1x3 ячейка {'Ян'} {'Санчес'} {'Джонс'}
Хотя вы можете получить доступ к содержимому ячеек с помощью индексации, большинство функций, которые принимают массивы ячеек в качестве входных данных, работают со всем массивом ячеек. Например, можно использовать функцию strcmp
, чтобы сравнить содержимое C
с вектором символов. strcmp
возвращает 1
в случае совпадения и 0
в противном случае.
TF = strcmp(C,'Ян')
TF = Логический массив 1x5 1 0 0 1 0
Вы можете просуммировать TF
, чтобы найти количество совпадений.
число = сумма (TF)
число = 2
Используйте TF
в качестве логических индексов для возврата совпадений в C
. Если вы индексируете с помощью гладких круглых скобок, то выход представляет собой массив ячеек, содержащий только совпадения.
M = C(TF)
M = Ячейка 1x2 {'Ян'} {'Ян'}
Преобразование массивов ячеек в массивы строк
Open Live Script
Массивы строк поддерживаются во всех продуктах MATLAB® и MathWorks®. Поэтому рекомендуется использовать массивы строк вместо массивов ячеек из символьных векторов. (Тем не менее, функции MATLAB, которые принимают массивы строк в качестве входных данных, также принимают символьные векторы и массивы ячеек из символьных векторов.)
Можно преобразовать массивы ячеек из символьных векторов в массивы строк. Чтобы преобразовать массив ячеек из символьных векторов, используйте строку 9Функция 0018.
C = {'Ли','Санчес','Джонс','Ян','Ларсон'}
C = 1x5 ячейка {'Ли'} {'Санчес'} {'Джонс'} {'Ян'} {'Ларсон'}
стр = струна (C)
стр = 1x5 струна "Ли" "Санчес" "Джонс" "Ян" "Ларсон"
На самом деле, функция string
преобразует любой массив ячеек, если все содержимое может быть преобразовано в строки.
C2 = {5, 10, 'какой-то текст', datetime('сегодня')}
C2= Массив ячеек 1×4 {[5]} {[10]} {'какой-то текст'} {[26 ноября 2022 г.]}
str2 = строка (C2)
str2 = 1x4 строка "5" "10" "какой-то текст" "26-ноября-2022"
См. также
Cellstr
| символ
| iscellstr
| стркмп
| строка
Связанные темы
- Текст в строковых и символьных массивах
- Доступ к данным в массиве ячеек
- Создание массивов строк
- Обновите свой код для приема строк
- Часто задаваемые вопросы о массивах строк
У вас есть модифицированная версия этого примера. Хотите открыть этот пример со своими правками?
Вы щелкнули ссылку, соответствующую этой команде MATLAB:
Запустите команду, введя ее в командном окне MATLAB. Веб-браузеры не поддерживают команды MATLAB.