Массив таблиц с именованными переменными, которые могут содержать различные типы
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-битное целое число |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Скалярная структура без полей |
| Таблица без переменных |
| Расписание без переменных и |
Для любого другого типа данных начальным значением является значение, используемое этим типом или классом для «заполнения» неназначенных элементов массива.
Если вы задаете 'char'
как тип данных, затем table
предварительно выделяет соответствующую переменную как массив ячеек из векторов символов, а не как символьный массив. Лучшая практика состоит в том, чтобы избегать создания переменных table или timetable, которые являются символьными массивами. При работе с текстовыми данными в таблице или timetable рассмотрите использование строковых массивов или категориального массива.
Задайте необязательные разделенные разделенными запятой парами 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
- имя свойства. Для примера можно получить доступ к именам переменных в таблице PropertyName
T
использование синтаксиса 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.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
не пуст, количество имен строк должно равняться количеству строк в таблице.
Имена строк могут содержать любые символы в кодировке Юникод, включая пространства и символы, отличные от 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
- Имена переменныхИмена переменных, заданные как массив ячеек из векторов символов или строковые массивы, элементы которого непусты и различны. Количество имен должно равняться количеству переменных.
Имена переменных могут иметь любые символы Юникода, включая пространства и символы, отличные от 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
объект.
The CustomProperties
объект является контейнером для настраиваемых метаданных, которые можно добавить в таблицу. По умолчанию CustomProperties
имеет нулевые свойства. Каждое свойство, к которому вы добавляете CustomProperties
может содержать либо метаданные таблицы, либо переменные метаданные. Если свойство содержит метаданные переменной, то его значение должно быть массивом, а количество элементов в массиве должно равняться количеству табличных переменных.
Чтобы добавить свойства для настраиваемых метаданных в таблицу, используйте addprop
функция.
Для доступа или изменения настроенных метаданных используйте синтаксис
. В этом синтаксисе tableName
.Properties. CustomProperties. PropertyName
- имя, которое вы выбрали при добавлении этого свойства с помощью PropertyName
addprop
.
Чтобы удалить свойства, используйте 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.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: [1x7 string] 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: [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
, как контейнер для переменных рабочей области. The 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.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
Предварительно выделите таблицу путем определения ее размера и типов данных переменных. The 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.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 ®. Такие имена переменных могут включать пространства, символы, отличные от 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
функция от имен, затем присвойте их как имена переменных таблице или timetable.
Поведение изменено в R2019b
MATLAB вызывает ошибку, если вы присвоите имя табличной переменной, совпадающее с именем размерности, или имя размерности, совпадающее с именем переменной. В предыдущих релизах MATLAB поднял предупреждение и изменил имена так, чтобы они были уникальными.
Поведение изменено в R2021a
MATLAB вызывает ошибку, если вы присвоите имя размерности, соответствующее одному из следующих зарезервированных имен: 'Properties'
, 'RowNames'
, 'VariableNames'
, или ':'
. В предыдущих релизах MATLAB поднял предупреждение и изменил имена размерностей так, чтобы они отличались от зарезервированных имен.
Эта функция поддерживает длинные массивы с ограничением:
Синтаксис TT = table(T1,T2,...)
создает длинная таблица из несколькие длинные массивы (T1,T2,...)
. Можно использовать 'VariableNames'
аргумент пары "имя-значение" для задания имен переменных.
Для получения дополнительной информации см. Раздел «Длинные массивы для данных , которых не помещаютсь в память,».
Указания и ограничения по применению:
Начиная с R2019b, можно использовать таблицы в коде MATLAB, предназначенные для генерации кода. Для получения дополнительной информации смотрите Генерация кода для таблиц (MATLAB Coder) и Ограничения таблицы для генерации кода (MATLAB Coder).
Указания и ограничения по применению:
Массивы входа должны быть распределены и иметь одинаковое число строк.
Результат распределяется, используя 1D схему распределения по первой размерности.
Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
array2table
| cell2table
| isvarname
| readtable
| struct2table
| summary
| tall
| uitable
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.