Табличный массив с именованными переменными, которые могут содержать различные типы
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 на 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-битный целочисленный |
| 0 |
|
|
|
|
| 0 |
| 0 |
|
|
|
|
|
|
| Скалярная структура без полей |
| Таблица без переменных |
| Расписание без переменных и |
Для любого другого типа данных начальное значение является значением, используемым тем типом, или класс к "заполнению" отменил присвоение элементов массива.
Если вы задаете '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
свойство таблицы.
Имена переменных могут иметь любой Unicode® символы, включая пробелы и символы non-ASCII.
RowNames
'RowNames' Строка называет в виде массива ячеек из символьных векторов или массива строк, элементы которого непусты и отличны.
Количество имен в массиве должно равняться количеству строк.
table
функционируйте также хранит имена строки в RowNames
свойство таблицы.
Имена строки могут иметь любые символы Unicode, включая символы non-ASCII и пробелы.
table
функция удаляет любое продвижение или конечные пробельные символы с имен строки.
Пример: T = table([10;20;30],{'M';'F';'F'},'VariableNames',{'Age','Gender'},'RowNames',{'P1','P2','P3'})
составляет таблицу с обоими именами переменных и именами строки.
DimensionNames
DimensionNames Начиная с R2021a
Размерность называет в виде двухэлементного массива ячеек из символьных векторов или двухэлементного массива строк, элементы которого непусты и отличны.
table
функционируйте также хранит имена размерности в DimensionNames
свойство таблицы.
Имена размерности могут иметь любые символы Unicode, включая символы non-ASCII и пробелы.
Перед R2021a можно указать, что размерность называет только путем установки DimensionNames
свойство.
Доступ к табличным свойствам метаданных
Таблица содержит свойства метаданных, которые описывают таблицу и ее переменные. Доступ к этим свойствам с помощью синтаксиса
, где tableName
свойства.
имя свойства. Например, можно получить доступ к именам переменных в таблице PropertyName
T
использование синтаксиса T.Properties.VariableNames
.
Можно возвратить сводные данные всех свойств метаданных с помощью синтаксиса
.tableName
свойства
Таблицы обеспечивают доступ к метаданным через Properties
свойство, потому что можно получить доступ к табличным данным непосредственно с помощью точечного синтаксиса. Например, если таблица T
имеет переменную под названием Var1
, затем можно получить доступ к значениям в переменной при помощи синтаксиса T.Var1
.
DimensionNames
DimensionNames {'Row','Variables'}
(значение по умолчанию) | двухэлементный массив ячеек из символьных векторов | двухэлементный массив строкРазмерность называет в виде двухэлементного массива ячеек из символьных векторов или двухэлементного массива строк.
Имена размерности могут иметь любые символы Unicode, включая символы non-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.Properties
ans = 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' {}
(значение по умолчанию) | массив ячеек из символьных векторов | массив строкСтрока называет в виде массива ячеек из символьных векторов или массива строк, элементы которого непусты и отличны. Если RowNames
не пусто, затем количество имен строки должно равняться количеству строк в таблице.
Имена строки могут иметь любые символы Unicode, включая символы non-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.Properties
ans = 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
Имена переменныхИмена переменных в виде массива ячеек из символьных векторов или массива строк, элементы которого непусты и отличны. Количество имен должно равняться количеству переменных.
Имена переменных могут иметь любые символы Unicode, включая символы non-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
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
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
свойства. Custom Properties.
имя, которое вы выбрали, когда вы добавили то использование свойства PropertyName
addprop
.
Чтобы удалить свойства, используйте rmprop
функция.
Примечание: можно добавить или удалить только свойства для индивидуально настраиваемого использования метаданных addprop
и rmprop
. Вы не можете добавить или удалить свойства
объект.tableName
свойства
Составление таблицы.
load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
Добавьте свойства, которые могут содержать индивидуально настраиваемые метаданные о таблице и ее переменных. В этом примере метаданные являются именами инструментов, true
и false
значения, указывающие, должны ли переменные быть построены, и имя выходного файла. Чтобы добавить свойства, используйте addprop
функция.
T = addprop(T,{'Instrument','ToPlot','OutputFile'},{'variable','variable','table'}); 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: [] 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: ["" "" "height rod" "scale" ... ] ToPlot: [0 0 1 1 0 1 1]
Удалите OutputFile
свойство от T
.
T = rmprop(T,'OutputFile');
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>): Instrument: ["" "" "height rod" "scale" ... ] 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
Вычислите индекс массы тела (BMI) и добавьте его как новую табличную переменную. Также можно добавить и назвать табличные переменные за один шаг, с помощью точечного синтаксиса.
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
Аннотируйте таблицу описанием вычисления BMI. Можно аннотировать T
и к его переменным с помощью метаданных получают доступ через T.Properties
.
T.Properties.Description = 'Patient data, including body mass index (BMI) calculated using Height and Weight';
T.Properties
ans = 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.PatientData
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
Предварительно выделите таблицу путем определения ее размера и типов данных переменных. 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 24-Aug-2021 23:33:34 "S1"
68 25-Aug-2021 23:33:34 "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.LastNames
ans = 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®. Такие имена переменных могут включать пробелы, символы non-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') = BloodPressure
T=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'
Имена переменных
, или ':'
. В предыдущих релизах MATLAB повысил предупреждение и изменил имена размерности так, чтобы они отличались от зарезервированных имен.
Эта функция поддерживает высокие массивы с ограничением:
Синтаксис TT = table(T1,T2,...)
создает длинную таблицу из нескольких длинных массивов (T1,T2,...)
. Можно использовать 'VariableNames'
аргумент пары "имя-значение", чтобы задать имена переменных.
Для получения дополнительной информации смотрите Длинные массивы для Данных, которые не помещаются в память.
Указания и ограничения по применению:
Начиная в R2019b, можно использовать таблицы в коде MATLAB, предназначенном для генерации кода. Для получения дополнительной информации смотрите Генерацию кода для Таблиц (MATLAB Coder) и Табличные Ограничения для Генерации кода (MATLAB Coder).
Указания и ограничения по применению:
Входные массивы должны быть распределены и иметь одинаковое число строк.
Результат распределяется, с помощью 1D схема распределения по первой размерности.
Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
readtable
| cell2table
| array2table
| struct2table
| isvarname
| summary
| uitable
| tall
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.