The table
тип данных подходит для сбора ориентированных на столбцы гетерогенных данных в одном контейнере. Таблицы также содержат свойства метаданных, такие как имена переменных, имена строк, имена размерностей, описания и переменные модули. Начиная с R2016b, вы можете использовать имена размерностей для доступа к данным таблицы и метаданным с помощью индексирования на точку. Для этого имена размерностей должны удовлетворять тем же требованиям, что и имена переменных. Для обратной совместимости таблицы применяют эти ограничения, автоматически изменяя имена размерностей при необходимости.
Составьте таблицу с именами строк и имен переменных.
Number = [8; 21; 13; 20; 11]; Name = {'Van Buren'; 'Arthur'; 'Fillmore'; 'Garfield'; 'Polk'}; Party = categorical({'Democratic'; 'Republican'; 'Whig'; 'Republican'; 'Republican'}); T = table(Number,Party,'RowNames',Name)
T = Number Party ______ __________ Van Buren 8 Democratic Arthur 21 Republican Fillmore 13 Whig Garfield 20 Republican Polk 11 Republican
Отображение его свойств, включая имена размерностей. Имена значений по умолчанию размерности 'Row'
и 'Variables'
.
T.Properties
ans = struct with fields: Description: '' UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {'Number' 'Party'} VariableDescriptions: {} VariableUnits: {} RowNames: {5×1 cell}
Начиная с R2016b, вы можете присваивать новые имена именам размерностей и использовать их для доступа к данным таблицы. Имена размерностей должны быть допустимыми MATLAB® идентификаторы, и не должны быть одним из зарезервированных имен, 'Properties'
, 'RowNames'
, или 'VariableNames'
.
Присвойте новое имя первой размерности и используйте его для доступа к именам строк таблицы.
T.Properties.DimensionNames{1} = 'Name';
T.Name
ans = 5×1 cell array 'Van Buren' 'Arthur' 'Fillmore' 'Garfield' 'Polk'
Создайте новую табличную переменную с именем Name
. При создании переменной в таблице изменяется имя первой размерности, чтобы предотвратить конфликт. Обновленное имя размерности становится Name_1
.
T{:,'Name'} = {'Martin'; 'Chester'; 'Millard'; 'James'; 'James'}
Warning: DimensionNames property was modified to avoid conflicting dimension and variable names: 'Name'. See Compatibility Considerations for Using Tables for more details. This will become an error in a future release. T = Number Party Name ______ __________ _________ Van Buren 8 Democratic 'Martin' Arthur 21 Republican 'Chester' Fillmore 13 Whig 'Millard' Garfield 20 Republican 'James' Polk 11 Republican 'James'
T.Properties.DimensionNames
ans = 1×2 cell array 'Name_1' 'Data'
Точно так же, если вы присвоите имя размерности, которое не является допустимым идентификатором MATLAB, имя будет изменено.
T.Properties.DimensionNames{1} = 'Last Name';
T.Properties.DimensionNames
Warning: DimensionNames property was modified to make the name 'Last Name' a valid MATLAB identifier. See Compatibility Considerations for Using Tables for more details. This will become an error in a future release. ans = 1×2 cell array 'LastName' 'Data'
В R2016b таблицы вызывают предупреждения, когда имена размерностей не являются допустимыми идентификаторами, или конфликтуют с именами переменных или зарезервированными именами, так что можно продолжать работать с кодом и таблицами, созданными в предыдущих релизах. Если вы столкнулись с этими предупреждениями, рекомендуется обновить код, чтобы избежать их.