Таблица является контейнером для хранения ориентированного на столбец на переменные, которые имеют одинаковое число строк. Круглые скобки позволяют вам выбирать подмножество данных в таблице и сохранять табличный контейнер. Фигурные скобки и точечная индексация позволяют вам извлекать данные из таблицы.
Если вы используете фигурные скобки, полученный массив является горизонтальной конкатенацией заданных табличных переменных, содержащих только заданные строки. Типы данных всех заданных переменных должны быть совместимыми для конкатенации. Можно затем выполнить вычисления с помощью функций MATLAB®.
Точка, индексирующая данные об извлечениях из одной табличной переменной. Результатом является массив совпадающего типа данных как извлеченная переменная. Можно следовать за индексацией точки с круглыми скобками, чтобы задать подмножество строк, чтобы извлечь от переменной.
T.Variables
горизонтально конкатенирует все табличные переменные в массив. T.Variables
эквивалентен T{:,:}
.
Чтобы преобразовать в нижний индекс в таблицу и избранные переменные заданного типа, используйте функцию vartype
.
Рассмотрите таблицу, T
.
Тип индексации | Результат | Синтаксис | 'Строки' | Переменные |
---|---|---|---|---|
Круглые скобки | таблица |
| Одна или несколько строк, заданных | Одна или несколько переменных, заданных |
Фигурные скобки | извлеченные данные |
| Одна или несколько строк, заданных | Одна или несколько переменных, заданных |
Точечная индексация | извлеченные данные |
| Все строки | Одна переменная, заданная |
Точечная индексация | извлеченные данные |
| Одна или несколько строк, заданных | Одна переменная, заданная |
Свойство переменных | извлеченные данные |
| Все строки | Все переменные, когда они могут быть горизонтально конкатенированы в массив |
Индексирование типом переменной | таблица |
| Одна или несколько строк, заданных | Одна или несколько переменных заданного |
Индексирование типом переменной | извлеченные данные |
| Одна или несколько строк, заданных | Одна или несколько переменных заданного |
При индексации в таблицу с круглыми скобками, фигурными скобками или точечной индексацией, можно задать
как двоеточие, числовые индексы или логические выражения. Кроме того, можно индексировать по наименованию использование имени одной строки или массива ячеек имен строки.rows
Логическое выражение может содержать фигурные скобки или индексацию точки, чтобы извлечь данные, от которых можно задать подмножество строк. Например, rows = T.Var2>0
возвращает логический массив с логическим true
(1
) для строк, где значение в переменной Var2
больше, чем нуль.
При индексации в таблицу с круглыми скобками или фигурными скобками, можно задать
как двоеточие, числовые индексы, логические выражения, одно имя переменной, массив ячеек имен переменных, или как вывод функции vars
vartype
..
При использовании точечной индексации необходимо задать одну переменную для доступа. Для одного имени переменной используйте
. Для одного переменного индекса, заданного как положительное целое число, T.var
использованияT.(varindex)
.
Этот пример показывает, как составить таблицу от подмножества большей таблицы.
Загрузка демонстрационных данных
Загрузите демонстрационные данные пациентов и составьте таблицу. Используйте уникальные идентификаторы в LastName
как имена строки.
load patients patients = table(Age,Gender,Height,Weight,Smoker,... 'RowNames',LastName);
Таблица, patients
, содержит 100 строк и 5 переменных.
Просмотрите тип данных, описание, модули и другую описательную статистику для каждой переменной при помощи summary
, чтобы обобщить таблицу.
summary(patients)
Variables: Age: 100x1 double Values: Min 25 Median 39 Max 50 Gender: 100x1 cell array of character vectors Height: 100x1 double Values: Min 60 Median 67 Max 72 Weight: 100x1 double Values: Min 111 Median 142.5 Max 202 Smoker: 100x1 logical Values: True 34 False 66
Индексируйте Используя числовые индексы
Создайте подтаблицу, содержащую первые пять строк и все переменные из таблицы, patients
. Используйте числовую индексацию в круглых скобках, чтобы задать желаемые строки и переменные. Это подобно индексации с числовыми массивами.
T1 = patients(1:5,:)
T1=5×5 table
Age Gender Height Weight Smoker
___ ________ ______ ______ ______
Smith 38 'Male' 71 176 true
Johnson 43 'Male' 69 163 false
Williams 38 'Female' 64 131 false
Jones 40 'Female' 67 133 false
Brown 49 'Female' 64 119 false
T1
является таблицей 5 на 5. В дополнение к числовым индексам можно использовать строку или имена переменных в круглых скобках. В этом случае использование индексов строки и двоеточия более компактно, чем использование строки или имен переменных.
Индексируйте Используя имена
Выберите все данные для пациентов с фамилиями 'Adams'
и 'Brown'
. В этом случае более просто использовать имена строки, чем использовать числовой индекс.
T2 = patients({'Adams','Brown'},:)
T2=2×5 table
Age Gender Height Weight Smoker
___ ________ ______ ______ ______
Adams 48 'Female' 66 137 false
Brown 49 'Female' 64 119 false
T2
2 5 таблица.
Индекс Используя логическое выражение
Составьте новую таблицу, T3
, содержа пол, высоту и вес пациентов моложе 30. Выберите только строки, где значение в переменной, Age
, является меньше чем 30.
Используйте запись через точку, чтобы извлечь данные из табличной переменной и логического выражения, чтобы задать подмножество строк на основе тех извлеченных данных.
rows = patients.Age<30; vars = {'Gender','Height','Weight'};
rows
является 100 1 логическим массивом, содержащим логический true
(1
) для строк, где значение в переменной, Age
, является меньше чем 30.
Используйте круглые скобки, чтобы возвратить таблицу, содержащую желаемое подмножество данных.
T3 = patients(rows,vars)
T3=15×3 table
Gender Height Weight
________ ______ ______
Moore 'Male' 68 183
Jackson 'Male' 71 174
Garcia 'Female' 69 131
Walker 'Female' 65 123
Hall 'Male' 70 189
Young 'Female' 63 114
Hill 'Female' 64 138
Rivera 'Female' 63 130
Cooper 'Female' 65 127
Cox 'Female' 66 111
Howard 'Female' 68 134
James 'Male' 66 186
Jenkins 'Male' 69 189
Perry 'Female' 64 120
Alexander 'Male' 69 171
T3
15 3 таблица.
Этот пример показывает, как извлечь содержимое таблицы с помощью фигурных скобок или точечной индексации.
Загрузка демонстрационных данных
Загрузите демонстрационные данные пациентов и составьте таблицу. Используйте уникальные идентификаторы в LastName
как имена строки.
load patients patients = table(Age,Gender,Height,Weight,Smoker,... 'RowNames',LastName);
Таблица, patients
, содержит 100 строк и 5 переменных.
Извлеките несколько строк и несколько переменных
Извлеките данные из нескольких переменных в таблице, patients
при помощи фигурных скобок. Начиная с точки, индексирующей данные об извлечениях из одной переменной за один раз, фигурные скобки более удобны когда это необходимо, чтобы извлечь больше чем одну переменную.
Извлеките высоту и вес для первых пяти пациентов. Используйте числовые индексы, чтобы выбрать подмножество строк, 1:5
и имен переменных, чтобы выбрать подмножество переменных, {Height,Weight}
.
A = patients{1:5,{'Height','Weight'}}
A = 5×2
71 176
69 163
64 131
67 133
64 119
A
является 5 2 числовым массивом.
Извлеките данные из одной переменной
Используйте точечную индексацию, чтобы легко извлечь содержимое одной переменной. Постройте гистограмму числовых данных в переменной, Weight
.
figure()
histogram(patients.Weight)
title(' Patient Weight')
patients.Weight
является вектор-столбцом с двойной точностью с 100 строками. Также можно использовать фигурные скобки, patients{:,'Weight'}
, чтобы извлечь все строки для переменной Weight
.
Чтобы задать подмножество строк для одной переменной, можно следовать за индексацией точки с круглыми скобками или фигурными скобками. Извлеките высоты пациентов некурящего моложе 30.
Используйте запись через точку, чтобы извлечь данные из табличных переменных и логического выражения, чтобы задать подмножество строк на основе тех извлеченных данных.
rows = patients.Smoker==false & patients.Age<30;
Используйте запись через точку, чтобы извлечь желаемые строки от переменной, Height
.
patients.Height(rows)
ans = 11×1
68
71
70
63
64
63
65
66
68
66
⋮
Вывод является 11 1 числовым массивом. Также можно задать одну переменную, Height
, в фигурных скобках, чтобы извлечь желаемые данные, patients{rows,'Height'}
.