Массив таблиц с именованными переменными, которые могут содержать различные типы
table массивы хранят колонноориентированные или табличные данные, например столбцы из текстового файла или электронной таблицы. Таблицы хранят каждый фрагмент данных, ориентированных на столбцы, в переменной. Переменные таблицы могут иметь различные типы данных и размеры, если все переменные имеют одинаковое количество строк. Переменные таблицы имеют имена, так же как поля структуры имеют имена. Используйте summary для получения информации о таблице.
Для индексирования в таблицу используйте гладкие круглые скобки () для возврата вложенной таблицы или фигурных скобок {} для извлечения содержимого. К переменным и строкам можно обращаться с помощью имен. Дополнительные сведения об индексировании с использованием номеров и имен см. в разделе Доступ к данным в таблицах.
Можно считывать данные из файла в таблицу с помощью Import Tool или readtable функция. В качестве альтернативы используйте table для создания таблицы из существующих переменных рабочей области.
Кроме того, можно создать таблицу, которая будет содержать пространство для переменных, значения которых будут заполнены позже. Чтобы создать таблицу с предварительно выделенным пространством для переменных, используйте table функция с 'Size' в качестве первого входного аргумента, как описано ниже.
T = table( создает таблицу из входных переменных var1,...,varN)var1,...,varN. Переменные могут иметь разные размеры и типы данных, но все переменные должны иметь одинаковое количество строк.
Если входные данные являются переменными рабочей области, то table присваивает их имена в качестве имен переменных в выходной таблице. В противном случае table присваивает имена переменных формы 'Var1',...,'Var, где N' - количество переменных.N
T = table('Size', создает таблицу и предварительно выделяет пространство для переменных с указанными типами данных. sz,'VariableTypes',varTypes)sz - двухэлементный числовой массив, где sz(1) определяет количество строк и sz(2) определяет количество переменных. varTypes указывает типы данных переменных.
T = table(___, указывает дополнительные входные аргументы, использующие один или несколько аргументов пары имя-значение. Например, можно указать имена переменных с помощью Name,Value)'VariableNames' пара имя-значение. Этот синтаксис можно использовать с любым из входных аргументов предыдущих синтаксисов.
T = table создает пустую таблицу 0-by-0.
var1,...,varN - Входные переменныеВходные переменные, указанные как массивы с одинаковым количеством строк. Входные переменные могут иметь различные размеры и типы данных.
Общими входными переменными являются числовые массивы, логические массивы, символьные массивы, структурные массивы или массивы ячеек. Входными переменными также могут быть объекты, являющиеся массивами. Такой массив должен поддерживать индексирование формы var(index1,...,indexN), где index1 - числовой или логический вектор, соответствующий строкам переменной. var. Кроме того, массив должен реализовывать оба vertcat способ и size метод с помощью dim аргумент.
Пример: table([1:4]',ones(4,3,2),eye(4,2)) создает таблицу из переменных с четырьмя строками, но разных размеров.
Пример: table([1:3]',{'one';'two';'three'},categorical({'A';'B';'C'})) создает таблицу из переменных с тремя строками, но различными типами данных.
sz - Размер предварительно распределенной таблицыРазмер предварительно выделенной таблицы, определяемый как двухэлементный числовой вектор. Первый элемент sz определяет количество строк, а второй элемент - количество табличных переменных.
Для создания только переменных без строк укажите 0 в качестве первого элемента sz.
Пример: T = table('Size',[50 3],'VariableTypes',{'string','double','datetime'}) предварительно распределяет 50 строк для таблицы, содержащей строковый массив, двойной массив и массив datetime.
Пример: T = table('Size',[0 4],'VariableTypes',varTypes) задает нулевые строки и четыре переменные.
varTypes - Типы данных предварительно выделенных переменныхТипы данных предварительно выделенных переменных, заданные как массив ячеек символьных векторов или строковый массив. Количество типов, указанных varTypes должно равняться количеству переменных, указанных вторым элементом sz.
varTypes может содержать имена любых типов данных, включая имена, показанные в таблице.
Имя типа данных | Начальное значение в каждом элементе |
|---|---|
| Двойная или одинарная точность |
| Двойная или одинарная точность |
| Подписанное 8-, 16-, 32- или 64-разрядное целое число |
| Беззнаковое 8-, 16-, 32- или 64-разрядное целое число |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Скалярная структура без полей |
| Таблица без переменных |
| Расписание без переменных и |
Для любого другого типа данных начальное значение является значением, используемым этим типом или классом для «заполнения» неназначенных элементов массива.
При указании 'char' как тип данных, то table предварительно распределяет соответствующую переменную как массив ячеек символьных векторов, а не как символьный массив. Рекомендуется избегать создания переменных таблицы или расписания, которые являются массивами символов. При работе с текстовыми данными в таблице или расписании рекомендуется использовать строковый массив или категориальный массив.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
T = table(rowTimes,X,Y,'VariableNames',{'Latitude','Longitude'}) создает таблицу из входных массивов X и Yи называет соответствующие переменные таблицы Latitude и Longitude.'VariableNames' - Имена переменныхИмена переменных, определяемые как массив ячеек символьных векторов или строковый массив, элементы которого являются непустыми и различными.
Число имен в массиве должно равняться числу переменных таблицы.
table функция также сохраняет имена переменных в VariableNames свойства таблицы.
Имена переменных могут содержать любые символы Юникода ®, включая пробелы и символы, не относящиеся к ASCII.
'RowNames' - Имена строкИмена строк, определяемые как массив ячеек символьных векторов или строковый массив, элементы которого являются непустыми и различными.
Число имен в массиве должно быть равно количеству строк.
table функция также сохраняет имена строк в RowNames свойства таблицы.
Имена строк могут содержать любые символы Юникода, включая пробелы и символы, не относящиеся к ASCII.
table функция удаляет все начальные или конечные пробелы из имен строк.
Пример: T = table([10;20;30],{'M';'F';'F'},'VariableNames',{'Age','Gender'},'RowNames',{'P1','P2','P3'}) создает таблицу с именами переменных и строк.
'DimensionNames' - Имена измеренийС R2021a г.
Имена измерений, определяемые как двухэлементный массив ячеек символьных векторов или двухэлементный строковый массив, элементы которого являются непустыми и различными.
table функция также сохраняет имена измерений в DimensionNames свойства таблицы.
Имена измерений могут содержать любые символы Юникода, включая пробелы и символы, не относящиеся к ASCII.
Перед R2021a можно указать имена размеров, только задав DimensionNames собственность.
Свойства метаданных таблицы доступа
Таблица содержит свойства метаданных, описывающие таблицу и ее переменные. Доступ к этим свойствам с помощью синтаксиса , где tableName.Properties.PropertyName - имя свойства. Например, можно получить доступ к именам переменных в таблице. PropertyNameT с использованием синтаксиса T.Properties.VariableNames.
Можно вернуть сводку всех свойств метаданных с помощью синтаксиса .tableName.Properties
Таблицы обеспечивают доступ к метаданным через Properties свойство, поскольку доступ к данным таблицы возможен непосредственно с помощью синтаксиса точек. Например, если таблица T имеет переменную с именем Var1, то можно получить доступ к значениям переменной с помощью синтаксиса T.Var1.
DimensionNames - Имена измерений{'Row','Variables'} (по умолчанию) | двухэлементный массив ячеек символьных векторов | двухэлементный строковый массивИмена измерений, определяемые как двухэлементный массив ячеек символьных векторов или двухэлементный строковый массив.
Имена измерений могут содержать любые символы Юникода, включая пробелы и символы, не относящиеся к ASCII.
Если это свойство задается с помощью строкового массива, то оно преобразуется и сохраняется как массив ячеек символьных векторов.
Доступ к данным таблицы можно получить с помощью двух имен измерений.
Если в таблице есть имена строк и используется синтаксис точек и имя первого измерения, то можно получить доступ к именам строк как к вектору.
Если используется синтаксис точек и имя второго измерения, то данные из всех переменных объединяются в одном массиве, как если бы вы индексировались в таблицу с помощью {:,:} синтаксис.
Создайте таблицу и отобразите имена ее размеров. Доступ к именам строк и данным можно получить с помощью имен измерений с помощью синтаксиса точек.
load patients T = table(Age,Height,Weight,Systolic,Diastolic, ... 'RowNames',LastName); T.Properties.DimensionNames
ans = 1x2 cell
{'Row'} {'Variables'}
Доступ к именам строк с помощью имени первого измерения. Отображение первых пяти имен.
T.Row(1:5)
ans = 5x1 cell
{'Smith' }
{'Johnson' }
{'Williams'}
{'Jones' }
{'Brown' }
Доступ к данным осуществляется с использованием второго имени измерения. Этот синтаксис эквивалентен T{:,:}.
T.Variables
ans = 100×5
38 71 176 124 93
43 69 163 109 77
38 64 131 125 83
40 67 133 117 75
49 64 119 122 80
46 68 142 121 70
33 64 142 130 88
40 68 180 115 82
28 68 183 115 78
31 66 132 118 86
⋮
Измените имена своих размеров с помощью Properties.DimensionNames собственность. Изменив имена измерений, можно получить доступ к именам строк и данным с помощью синтаксиса T.Patient и T.Data соответственно.
T.Properties.DimensionNames = {'Patient','Data'};
T.Propertiesans =
TableProperties with properties:
Description: ''
UserData: []
DimensionNames: {'Patient' 'Data'}
VariableNames: {'Age' 'Height' 'Weight' 'Systolic' 'Diastolic'}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {100x1 cell}
CustomProperties: No custom properties are set.
Use addprop and rmprop to modify CustomProperties.
RowNames - Имена строк{} (по умолчанию) | массив ячеек символьных векторов | строковый массивИмена строк, определяемые как массив ячеек символьных векторов или строковый массив, элементы которого являются непустыми и различными. Если RowNames не пуст, то количество имен строк должно равняться количеству строк в таблице.
Имена строк могут содержать любые символы Юникода, включая пробелы и символы, не относящиеся к ASCII.
При назначении имен строк с начальными или конечными пробелами MATLAB ® удаляет их из имен строк.
Имена строк отображаются при просмотре таблицы. Кроме того, для доступа к данным таблицы можно использовать имена строк в скобках или фигурных скобках.
Другим способом доступа к именам строк является использование синтаксиса точек и имени первого измерения таблицы.
Если это свойство задается с помощью строкового массива, то оно преобразуется и сохраняется как массив ячеек символьных векторов.
Создайте таблицу. Затем добавьте имена строк и получите доступ к строкам по их именам.
load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);Добавление имен строк с помощью Properties.RowNames собственность. По умолчанию таблицы не имеют имен строк, но их можно добавить в любое время.
T.Properties.RowNames = LastName; head(T,4)
ans=4×7 table
Gender Age Height Weight Smoker Systolic Diastolic
__________ ___ ______ ______ ______ ________ _________
Smith {'Male' } 38 71 176 true 124 93
Johnson {'Male' } 43 69 163 false 109 77
Williams {'Female'} 38 64 131 false 125 83
Jones {'Female'} 40 67 133 false 117 75
Другой способ доступа к именам строк - использование синтаксиса точек с именем первого измерения таблицы. Отображение первых пяти имен строк.
T.Properties.DimensionNames
ans = 1x2 cell
{'Row'} {'Variables'}
T.Row(1:5)
ans = 5x1 cell
{'Smith' }
{'Johnson' }
{'Williams'}
{'Jones' }
{'Brown' }
Индексировать в таблицу по именам строк.
T({'Smith','Williams'},:)ans=2×7 table
Gender Age Height Weight Smoker Systolic Diastolic
__________ ___ ______ ______ ______ ________ _________
Smith {'Male' } 38 71 176 true 124 93
Williams {'Female'} 38 64 131 false 125 83
Description - Описание таблицы'' (по умолчанию) | символьный вектор | строковый скалярОписание таблицы, указанное как вектор символа или скаляр строки. Это описание отображается при использовании summary функция.
Если задать это свойство с помощью строкового скаляра, оно будет преобразовано и сохранено как символьный вектор.
Создайте таблицу. Измените описание таблицы. Отображение сводки результата.
load patients T = table(Gender,Age,Height,Weight); T.Properties.Description = 'Simulated patient data'; summary(T)
Description: Simulated patient data
Variables:
Gender: 100x1 cell array of character vectors
Age: 100x1 double
Values:
Min 25
Median 39
Max 50
Height: 100x1 double
Values:
Min 60
Median 67
Max 72
Weight: 100x1 double
Values:
Min 111
Median 142.5
Max 202
UserData - Дополнительная табличная информация[] (по умолчанию) | массивДополнительные сведения таблицы, указанные как массив. С помощью этого свойства можно присоединить данные любого типа к таблице.
Создайте таблицу. Присоедините анонимную функцию как часть пользовательских данных, связанных с таблицей.
load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
formula = @(x) x.^2;
T.Properties.UserData = formula;
T.Propertiesans =
TableProperties with properties:
Description: ''
UserData: @(x)x.^2
DimensionNames: {'Row' 'Variables'}
VariableNames: {1x7 cell}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
CustomProperties: No custom properties are set.
Use addprop and rmprop to modify CustomProperties.
VariableNames - Имена переменныхИмена переменных, определяемые как массив ячеек символьных векторов или строковый массив, элементы которого являются непустыми и различными. Число имен должно совпадать с числом переменных.
Имена переменных могут содержать любые символы Юникода, включая пробелы и символы, не относящиеся к ASCII.
Имена переменных отображаются при просмотре таблицы и при использовании summary функция. Кроме того, можно использовать имена переменных в скобках, фигурных скобках или с индексированием точек для доступа к данным таблицы.
Если это свойство задается с помощью строкового массива, то оно преобразуется и сохраняется как массив ячеек символьных векторов.
Создайте таблицу с именами переменных по умолчанию. Затем измените имена с помощью Properties.VariableNames собственность.
T = table({'M';'M';'F';'F';'F'},[38;43;38;40;49], ...
[71;69;64;67;64],[176;163;131;133;119])T=5×4 table
Var1 Var2 Var3 Var4
_____ ____ ____ ____
{'M'} 38 71 176
{'M'} 43 69 163
{'F'} 38 64 131
{'F'} 40 67 133
{'F'} 49 64 119
T.Properties.VariableNames = {'Gender','Age','Height','Weight'}T=5×4 table
Gender Age Height Weight
______ ___ ______ ______
{'M'} 38 71 176
{'M'} 43 69 163
{'F'} 38 64 131
{'F'} 40 67 133
{'F'} 49 64 119
Основным способом отображения и изменения переменных является доступ к ним по имени с использованием синтаксиса точек.
T.Age
ans = 5×1
38
43
38
40
49
T.Age(1) = 53
T=5×4 table
Gender Age Height Weight
______ ___ ______ ______
{'M'} 53 71 176
{'M'} 43 69 163
{'F'} 38 64 131
{'F'} 40 67 133
{'F'} 49 64 119
VariableDescriptions - Описания переменных{} (по умолчанию) | массив ячеек символьных векторов | строковый массивОписания переменных, заданные как массив ячеек символьных векторов или строковый массив Это свойство может быть пустым массивом ячеек, который является массивом по умолчанию. Если массив не пуст, он должен содержать столько элементов, сколько переменных. Для переменной, не имеющей описания, можно указать отдельный пустой символьный вектор или пустую строку.
Описания переменных отображаются при использовании summary функция.
Если это свойство задается с помощью строкового массива, то оно преобразуется и сохраняется как массив ячеек символьных векторов.
Создайте таблицу. Измените описания переменных. Отображение сводки результата.
load patients T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic); T.Properties.VariableDescriptions = {'','','','', ... 'Has the patient ever been a smoker', ... 'Systolic Pressure','Diastolic Pressure'}; summary(T)
Variables:
Gender: 100x1 cell array of character vectors
Age: 100x1 double
Values:
Min 25
Median 39
Max 50
Height: 100x1 double
Values:
Min 60
Median 67
Max 72
Weight: 100x1 double
Values:
Min 111
Median 142.5
Max 202
Smoker: 100x1 logical
Properties:
Description: Has the patient ever been a smoker
Values:
True 34
False 66
Systolic: 100x1 double
Properties:
Description: Systolic Pressure
Values:
Min 109
Median 122
Max 138
Diastolic: 100x1 double
Properties:
Description: Diastolic Pressure
Values:
Min 68
Median 81.5
Max 99
VariableUnits - Переменные единицы{} (по умолчанию) | массив ячеек символьных векторов | строковый массивПеременные единицы, заданные как массив ячеек символьных векторов или строковый массив. Это свойство может быть пустым массивом ячеек, который является массивом по умолчанию. Если массив не пуст, он должен содержать столько элементов, сколько переменных. Для переменной, не имеющей единиц измерения, можно указать отдельный вектор пустых символов или пустую строку.
Переменные единицы отображаются при использовании summary функция.
Если это свойство задается с помощью строкового массива, то оно преобразуется и сохраняется как массив ячеек символьных векторов.
Создайте таблицу. Измените переменные единицы измерения. Отображение сводки результата.
load patients T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic); T.Properties.VariableUnits = {'','Yrs','In','Lbs','','mm Hg','mm Hg'}; summary(T)
Variables:
Gender: 100x1 cell array of character vectors
Age: 100x1 double
Properties:
Units: Yrs
Values:
Min 25
Median 39
Max 50
Height: 100x1 double
Properties:
Units: In
Values:
Min 60
Median 67
Max 72
Weight: 100x1 double
Properties:
Units: Lbs
Values:
Min 111
Median 142.5
Max 202
Smoker: 100x1 logical
Values:
True 34
False 66
Systolic: 100x1 double
Properties:
Units: mm Hg
Values:
Min 109
Median 122
Max 138
Diastolic: 100x1 double
Properties:
Units: mm Hg
Values:
Min 68
Median 81.5
Max 99
VariableContinuity - Статус непрерывных или дискретных переменных[] (по умолчанию) | массив ячеек символьных векторов | строковый массивСтатус непрерывных или дискретных переменных, определяемый как массив ячеек символьных векторов или строковый массив.
В то время как таблицы и расписания имеют это свойство, его используют только расписания. Дополнительные сведения см. в разделе VariableContinuity имущество timetable.
CustomProperties - Настраиваемые метаданные таблицы и ее переменныхCustomProperties объектНастраиваемые метаданные таблицы и ее переменных, указанные как CustomProperties объект.
CustomProperties является контейнером для настраиваемых метаданных, которые можно добавить в таблицу. По умолчанию CustomProperties имеет нулевые свойства. Каждое свойство, к которому добавляется CustomProperties может содержать метаданные таблицы или метаданные переменных. Если свойство содержит метаданные переменных, то его значением должен быть массив, а количество элементов в массиве должно равняться количеству переменных таблицы.
Чтобы добавить свойства для настраиваемых метаданных в таблицу, используйте addprop функция.
Для доступа или изменения настраиваемых метаданных используйте синтаксис . В этом синтаксисе tableName.Properties.CustomProperties.PropertyName - это имя, выбранное при добавлении этого свойства с помощью PropertyNameaddprop.
Для удаления свойств используйте rmprop функция.
Примечание.Добавить или удалить можно только свойства настраиваемых метаданных с помощью addprop и rmprop. Невозможно добавить или удалить свойства объект.tableName.Properties
Создайте таблицу.
load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);Добавьте свойства, которые могут содержать настраиваемые метаданные о таблице и ее переменных. В этом примере метаданные являются названиями инструментов, true и false значения, указывающие, следует ли выводить переменные на печать, и имя выходного файла. Для добавления свойств используйте addprop функция.
T = addprop(T,{'Instrument','ToPlot','OutputFile'},{'variable','variable','table'});
T.Propertiesans =
TableProperties with properties:
Description: ''
UserData: []
DimensionNames: {'Row' 'Variables'}
VariableNames: {1x7 cell}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
Custom Properties (access using t.Properties.CustomProperties.<name>):
OutputFile: []
Instrument: []
ToPlot: []
Назначьте значения настраиваемым метаданным с помощью синтаксиса точек. При назначении массива текстовых значений пользовательским метаданным рекомендуется использовать строковый массив, а не массив ячеек символьных векторов. Если свойство CustomProperties является массивом ячеек из символьных векторов, то нет механизма, чтобы предотвратить последующее назначение нетекстовых значений в качестве элементов массива ячеек.
T.Properties.CustomProperties.Instrument = ["","","height rod","scale","","blood pressure cuff","blood pressure cuff"]; T.Properties.CustomProperties.ToPlot = [false false true true false true true]; T.Properties.CustomProperties.OutputFile = 'patientData.csv'; T.Properties
ans =
TableProperties with properties:
Description: ''
UserData: []
DimensionNames: {'Row' 'Variables'}
VariableNames: {1x7 cell}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
Custom Properties (access using t.Properties.CustomProperties.<name>):
OutputFile: 'patientData.csv'
Instrument: [1x7 string]
ToPlot: [0 0 1 1 0 1 1]
Удалить OutputFile свойство из T.
T = rmprop(T,'OutputFile');
T.Propertiesans =
TableProperties with properties:
Description: ''
UserData: []
DimensionNames: {'Row' 'Variables'}
VariableNames: {1x7 cell}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
Custom Properties (access using t.Properties.CustomProperties.<name>):
Instrument: [1x7 string]
ToPlot: [0 0 1 1 0 1 1]
Храните данные о группе пациентов в таблице. Можно выполнять вычисления и сохранять результаты в одной таблице. Кроме того, можно аннотировать таблицу для описания работы и переменных таблицы.
Сначала создайте переменные рабочего пространства, содержащие данные пациента. Переменные могут иметь любые типы данных, но должны иметь одинаковое количество строк.
LastName = {'Sanchez';'Johnson';'Li';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Smoker = logical([1;0;1;0;1]);
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];Создание таблицы, T, в качестве контейнера для переменных рабочей области. table функция использует имена переменных рабочей области в качестве имен переменных таблицы в T. Переменная таблицы может иметь несколько столбцов. Например, BloodPressure переменная в T является массивом 5 на 2.
T = table(LastName,Age,Smoker,Height,Weight,BloodPressure)
T=5×6 table
LastName Age Smoker Height Weight BloodPressure
___________ ___ ______ ______ ______ _____________
{'Sanchez'} 38 true 71 176 124 93
{'Johnson'} 43 false 69 163 109 77
{'Li' } 38 true 64 131 125 83
{'Diaz' } 40 false 67 133 117 75
{'Brown' } 49 true 64 119 122 80
Для доступа к переменным таблицы можно использовать точечное индексирование. Например, рассчитайте среднюю высоту пациентов, используя значения в T.Height.
meanHeight = mean(T.Height)
meanHeight = 67
Рассчитайте индекс массы тела (ИМТ) и добавьте его в качестве новой табличной переменной. Можно также добавить переменные таблицы и присвоить им имена за один шаг, используя синтаксис точек.
T.BMI = (T.Weight*0.453592)./(T.Height*0.0254).^2
T=5×7 table
LastName Age Smoker Height Weight BloodPressure BMI
___________ ___ ______ ______ ______ _____________ ______
{'Sanchez'} 38 true 71 176 124 93 24.547
{'Johnson'} 43 false 69 163 109 77 24.071
{'Li' } 38 true 64 131 125 83 22.486
{'Diaz' } 40 false 67 133 117 75 20.831
{'Brown' } 49 true 64 119 122 80 20.426
Аннотирование таблицы с описанием расчета ИМТ. Можно аннотировать T и его переменные с использованием метаданных, доступ к которым осуществляется через T.Properties.
T.Properties.Description = 'Patient data, including body mass index (BMI) calculated using Height and Weight';
T.Propertiesans =
TableProperties with properties:
Description: 'Patient data, including body mass index (BMI) calculated using Height and Weight'
UserData: []
DimensionNames: {'Row' 'Variables'}
VariableNames: {1x7 cell}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
CustomProperties: No custom properties are set.
Use addprop and rmprop to modify CustomProperties.
Доступ ко всем данным из таблицы в виде матрицы с использованием имени второго измерения таблицы.
Создайте таблицу, содержащую пять строк данных о наборе пациентов.
Age = [38;43;38;40;49]; Smoker = logical([1;0;1;0;1]); Height = [71;69;64;67;64]; Weight = [176;163;131;133;119]; BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80]; T = table(Age,Smoker,Height,Weight,BloodPressure)
T=5×5 table
Age Smoker Height Weight BloodPressure
___ ______ ______ ______ _____________
38 true 71 176 124 93
43 false 69 163 109 77
38 true 64 131 125 83
40 false 67 133 117 75
49 true 64 119 122 80
Отображение имен табличных измерений с помощью DimensionNames собственность. Имя второго измерения по умолчанию: Variables.
T.Properties.DimensionNames
ans = 1x2 cell
{'Row'} {'Variables'}
Доступ к данным таблицы в виде матрицы с помощью синтаксиса T.Variables. Этот синтаксис эквивалентен доступу ко всему содержимому с помощью синтаксиса фигурной скобки, T{:,:}. Если данные таблицы не могут быть объединены в матрицу, появляется сообщение об ошибке.
T.Variables
ans = 5×6
38 1 71 176 124 93
43 0 69 163 109 77
38 1 64 131 125 83
40 0 67 133 117 75
49 1 64 119 122 80
Переименуйте второй размер. При изменении имени можно использовать новое имя для доступа к данным.
T.Properties.DimensionNames{2} = 'PatientData';
T.PatientDataans = 5×6
38 1 71 176 124 93
43 0 69 163 109 77
38 1 64 131 125 83
40 0 67 133 117 75
49 1 64 119 122 80
Предварительно распределите таблицу, указав ее размер и типы данных переменных. table функция заполняет переменные значениями по умолчанию, соответствующими указанным типам данных. В нем также содержатся имена переменных по умолчанию, но также можно назначить имена переменных. Предварительное распределение предоставляет пространство для данных, добавляемых в таблицу позже.
sz = [4 3];
varTypes = {'double','datetime','string'};
T = table('Size',sz,'VariableTypes',varTypes)T=4×3 table
Var1 Var2 Var3
____ ____ _________
0 NaT <missing>
0 NaT <missing>
0 NaT <missing>
0 NaT <missing>
Чтобы указать имена переменных, используйте 'VariableNames' аргумент пары имя-значение.
varNames = {'Temperature','Time','Station'};
T2 = table('Size',sz,'VariableTypes',varTypes,'VariableNames',varNames)T2=4×3 table
Temperature Time Station
___________ ____ _________
0 NaT <missing>
0 NaT <missing>
0 NaT <missing>
0 NaT <missing>
Добавление строк данных в первые две строки T2. Предварительное распределение может быть полезным методом, когда код добавляет одну строку данных или несколько строк данных одновременно. Вместо увеличения таблицы при каждом добавлении строки можно заполнить переменные таблицы, в которых уже есть место для данных.
T2(1,:) = {75,datetime('now'),"S1"};
T2(2,:) = {68,datetime('now')+1,"S2"}T2=4×3 table
Temperature Time Station
___________ ____________________ _________
75 23-Mar-2021 16:46:44 "S1"
68 24-Mar-2021 16:46:44 "S2"
0 NaT <missing>
0 NaT <missing>
Можно инкапсулировать строку значений данных в массив ячеек. При назначении строки из массива ячеек элементы из массива ячеек назначаются строке в таблице.
Создание таблицы из массивов. Чтобы указать имена табличных переменных, используйте 'VariableNames' аргумент пары имя-значение. Например, можно использовать 'VariableNames' для указания имен, когда другие входные аргументы не являются переменными рабочей области.
T = table(categorical({'M';'F';'M'}),[45;32;34],...
{'NY';'CA';'MA'},logical([1;0;0]),...
'VariableNames',{'Gender','Age','State','Vote'})T=3×4 table
Gender Age State Vote
______ ___ ______ _____
M 45 {'NY'} true
F 32 {'CA'} false
M 34 {'MA'} false
Создайте таблицу с именами состояний в качестве имен строк. Вы можете указать оба 'VariableNames' и 'RowNames' пары имя-значение при использовании table функция.
T = table(categorical({'M';'F';'M'}),[45;32;34],logical([1;0;0]),...
'VariableNames',{'Gender','Age','Vote'},...
'RowNames',{'NY';'CA';'MA'})T=3×3 table
Gender Age Vote
______ ___ _____
NY M 45 true
CA F 32 false
MA M 34 false
Укажите имена строк для таблицы. Таблицы не обязательно должны иметь имена строк, но если их указать, то можно индексировать в таблицу по имени строки. Также можно получить доступ к набору имен строк, используя имя первого измерения таблицы.
Создание массивов, содержащих данные пациентов.
LastName = {'Sanchez';'Johnson';'Lee';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];Создайте таблицу, содержащую массивы. Определить LastName в качестве источника имен строк для таблицы. Таблица содержит только три переменные. Имена строк не являются табличной переменной, а являются свойством таблицы.
T = table(Age,Weight,Height,'RowNames',LastName)T=5×3 table
Age Weight Height
___ ______ ______
Sanchez 38 176 71
Johnson 43 163 69
Lee 38 131 64
Diaz 40 133 67
Brown 49 119 64
Поскольку строки имеют имена строк, можно индексировать в строки T по имени.
T('Lee',:)ans=1×3 table
Age Weight Height
___ ______ ______
Lee 38 131 64
Чтобы указать несколько строк, используйте массив ячеек.
T({'Lee','Brown'},:)ans=2×3 table
Age Weight Height
___ ______ ______
Lee 38 131 64
Brown 49 119 64
Доступ ко всем именам строк T в качестве массива ячеек используйте синтаксис T.Row. По умолчанию Row - имя первого измерения таблицы.
T.Row
ans = 5x1 cell
{'Sanchez'}
{'Johnson'}
{'Lee' }
{'Diaz' }
{'Brown' }
Измените имя первого размера. При изменении имени можно получить доступ к именам строк с помощью нового имени.
T.Properties.DimensionNames{1} = 'LastNames';
T.LastNamesans = 5x1 cell
{'Sanchez'}
{'Johnson'}
{'Lee' }
{'Diaz' }
{'Brown' }
Начиная с R2017a, можно создавать строки с помощью двойных кавычек и добавлять массивы строк в качестве переменных таблицы.
FlightNum = [1261;547;3489]; Customer = ["Jones";"Brown";"Smith"]; Date = datetime(2016,12,20:22)'; Rating = categorical(["Good";"Poor";"Fair"]); Comment = ["Flight left on time, not crowded";... "Late departure, ran out of dinner options";... "Late, but only by half an hour. Otherwise fine."]; T = table(FlightNum,Customer,Date,Rating,Comment)
T=3×5 table
FlightNum Customer Date Rating Comment
_________ ________ ___________ ______ _________________________________________________
1261 "Jones" 20-Dec-2016 Good "Flight left on time, not crowded"
547 "Brown" 21-Dec-2016 Poor "Late departure, ran out of dinner options"
3489 "Smith" 22-Dec-2016 Fair "Late, but only by half an hour. Otherwise fine."
Чтобы использовать текст в строковом массиве в качестве имен строк, преобразуйте строковый массив в массив ячеек символьных векторов. Затем создайте таблицу с именами строк.
Customer = cellstr(Customer);
T = table(FlightNum,Date,Rating,Comment,'RowNames',Customer)T=3×4 table
FlightNum Date Rating Comment
_________ ___________ ______ _________________________________________________
Jones 1261 20-Dec-2016 Good "Flight left on time, not crowded"
Brown 547 21-Dec-2016 Poor "Late departure, ran out of dinner options"
Smith 3489 22-Dec-2016 Fair "Late, but only by half an hour. Otherwise fine."
Создайте переменные рабочего пространства, содержащие итоговые значения снегопадов на разные даты в трех местах. Эти переменные являются векторами строк.
Date = {'12/25/11','1/2/12','1/23/12','2/7/12','2/15/12'};
location1 = [20 5 13 0 17];
location2 = [18 9 21 5 12];
location3 = [26 10 16 3 15];Одним из способов создания таблицы из этих переменных является вызов table функция с синтаксисом T = table(Date',location1',location2',location3'). Поскольку переменные рабочей области являются векторами строк, их необходимо транспонировать, чтобы поместить их в таблицу как данные, ориентированные на столбцы. Поэтому входные аргументы являются выражениями, а не простыми переменными. В результате, table создает T с именами переменных по умолчанию Var1, Var2, Var3, и Var4. Можно назначить более значимые имена T.Properties.VariableNames после создания T. Но, возможно, удобнее создать пустую таблицу, а затем добавлять переменные по одному с новыми именами.
Создайте пустую таблицу. Перенесите переменные рабочей области и добавьте их в таблицу в виде векторов столбцов. Как часть назначения каждой переменной рабочей области в T, укажите значимое имя переменной таблицы.
T = table; T.Date = Date'; T.Natick = location1'; T.Boston = location2'; T.Worcester = location3'
T=5×4 table
Date Natick Boston Worcester
____________ ______ ______ _________
{'12/25/11'} 20 18 26
{'1/2/12' } 5 9 10
{'1/23/12' } 13 21 16
{'2/7/12' } 0 5 3
{'2/15/12' } 17 12 15
Начиная с R2019b, можно указать имена табличных переменных, которые не являются допустимыми идентификаторами MATLAB ®. Такие имена переменных могут включать пробелы, символы, отличные от ASCII, и могут иметь любой символ в качестве ведущего. При обращении к такому имени переменной заключите его в кавычки.
Создайте таблицу, в которой хранятся данные о наборе пациентов. Начните с их возраста и статуса курильщиков.
Age = [38;43;38;40;49]; Smoker = logical([1;0;1;0;1]); Height = [71;69;64;67;64]; Weight = [176;163;131;133;119]; BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80]; T = table(Age,Smoker)
T=5×2 table
Age Smoker
___ ______
38 true
43 false
38 true
40 false
49 true
Добавьте показания артериального давления с именем переменной '29-May-2019 Blood Pressure Reading'. Для добавления переменной или доступа к ней можно использовать синтаксис точек. Поскольку его имя не является допустимым идентификатором MATLAB, используйте круглые скобки и кавычки с синтаксисом точек.
T.('29-May-2019 Blood Pressure Reading') = BloodPressureT=5×3 table
Age Smoker 29-May-2019 Blood Pressure Reading
___ ______ __________________________________
38 true 124 93
43 false 109 77
38 true 125 83
40 false 117 75
49 true 122 80
Если имена табличных переменных являются допустимыми идентификаторами MATLAB, можно использовать синтаксис точек без скобок и кавычек.
T.Height = Height; T.Weight = Weight
T=5×5 table
Age Smoker 29-May-2019 Blood Pressure Reading Height Weight
___ ______ __________________________________ ______ ______
38 true 124 93 71 176
43 false 109 77 69 163
38 true 125 83 64 131
40 false 117 75 67 133
49 true 122 80 64 119
Проиндексировать в T с использованием имен переменных.
T(:,{'Age','Smoker','29-May-2019 Blood Pressure Reading'})ans=5×3 table
Age Smoker 29-May-2019 Blood Pressure Reading
___ ______ __________________________________
38 true 124 93
43 false 109 77
38 true 125 83
40 false 117 75
49 true 122 80
Используйте одинарные кавычки для следующих входных имен:
'DimensionNames'(с
R2021a года)
'RowNames'
'Size'
'VariableTypes'
'VariableNames'
Чтобы избежать путаницы с переменными входами, не используйте скаляры строк с двойными кавычками (например, "RowNames") для этих имен.
Список функций, принимающих или возвращающих таблицы, см. в разделе Таблицы.
В R2019b изменилось поведение
Имена переменных таблицы и расписания с начальными или заключительными пробелами не изменяются.
В предыдущих версиях начальные и конечные пробелы удалялись из имен переменных при их указании с помощью 'VariableNames' аргумент пары «имя-значение» или их назначение VariableNames собственность.
Чтобы удалить такие символы вручную, сначала используйте strtrim , затем назначить их в качестве имен переменных таблице или расписанию.
В R2019b изменилось поведение
MATLAB вызывает ошибку при назначении имени переменной таблицы, соответствующего имени измерения, или имени измерения, соответствующего имени переменной. В предыдущих выпусках MATLAB поднимал предупреждение и изменял имена, чтобы они были уникальными.
В R2021a изменилось поведение
MATLAB вызывает ошибку при назначении имени измерения, соответствующего одному из следующих зарезервированных имен: 'Properties', 'RowNames', 'VariableNames', или ':'. В предыдущих версиях MATLAB вызывал предупреждение и изменял имена измерений таким образом, чтобы они отличались от зарезервированных имен.
Эта функция поддерживает массивы tall с ограничением:
Синтаксис TT = table(T1,T2,...) создает таблицу высокого уровня из нескольких массивов высокого уровня (T1,T2,...). Вы можете использовать 'VariableNames' аргумент пары имя-значение для указания имен переменных.
Дополнительные сведения см. в разделе Tall Arrays for Out-of-Memory Data.
Примечания и ограничения по использованию:
Начиная с R2019b, можно использовать таблицы в коде MATLAB, предназначенные для генерации кода. Дополнительные сведения см. в разделах Генерация кода для таблиц (кодер MATLAB) и Ограничения таблицы для генерации кода (кодер MATLAB).
Примечания и ограничения по использованию:
Входные массивы должны быть распределены и иметь одинаковое количество строк.
Результат распределяется с использованием 1D схемы распределения по первому измерению.
Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
array2table | cell2table | isvarname | readtable | struct2table | summary | tall | uitable
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.