Доступ к данным в массиве ячеек — 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.