table

Массив таблиц с именованными переменными, которые могут содержать различные типы

Описание

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.

Входные параметры

расширить все

Входные переменные, заданные как массивы с одинаковым числом строк. Входные переменные могут иметь различные размеры и различные типы данных.

Общие входные переменные - это числовые массивы, логические массивы, символьные массивы, массивы структур или массивы ячеек. Входными переменными также могут быть объекты, которые являются массивами. Такой массив должен поддерживать индексацию формы 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 задает количество строк, а второй элемент задает количество табличных переменных.

Чтобы создать только переменные, без каких-либо строк, задайте 0 как первый элемент sz.

Пример: T = table('Size',[50 3],'VariableTypes',{'string','double','datetime'}) предварительно выделяет 50 строк для таблицы, содержащей строковые массивы, двойной массив и массив datetime.

Пример: T = table('Size',[0 4],'VariableTypes',varTypes) задает нулевые строки и четыре переменные.

Типы данных предварительно выделенных переменных, заданные как массив ячеек из векторов символов или строковые массивы. Количество типов, заданное как varTypes должно равняться количеству переменных, заданному вторым элементом sz.

varTypes может содержать имена любых типов данных, включая имена, показанные в таблице.

Имя типа данных

Начальное значение в каждом элементе

'double''single'

Двойная или одинарная точность 0

'doublenan', 'doubleNaN''singlenan', 'singleNaN'

Двойная или одинарная точность NaN

'int8''int16''int32''int64'

Подписано 8-, 16-, 32- или 64-битное целое число 0

'uint8''uint16''uint32''uint64'

Беззнаковое 8-, 16-, 32- или 64-битное целое число 0

'logical'

0 (false)

'categorical'

<undefined> категориальное значение

'datetime'

NaT datetime значение

'duration'

0 секунд, как duration значение

'calendarDuration'

0 дней, как calendarDuration значение

'string'

"" (строка 1 на 1 без символов)

'cellstr'

{''} (камера с символьным массивом 0 на 0)

'cell'

{[]} (камера с двойным массивом 0 на 0)

'struct'

Скалярная структура без полей

'table'

Таблица без переменных

'timetable'

Расписание без переменных и NaT для времени строки

Для любого другого типа данных начальным значением является значение, используемое этим типом или классом для «заполнения» неназначенных элементов массива.

Если вы задаете '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.

Имена переменных, заданные как массив ячеек из векторов символов или строковые массивы, элементы которого непусты и различны.

  • Количество имен в массиве должно равняться количеству табличных переменных.

  • table функция также хранит имена переменных в VariableNames свойство таблицы.

  • Имена переменных могут иметь любой Юникод® символы, включая пространства и символы, отличные от ASCII.

Имена строк, заданные как массив ячеек из векторов символов или строковые массивы, элементы которого непусты и различны.

  • Количество имен в массиве должно равняться количеству строк.

  • table функция также хранит имена строк в RowNames свойство таблицы.

  • Имена строк могут содержать любые символы в кодировке Юникод, включая пространства и символы, отличные от ASCII.

  • table функция удаляет все начальные или конечные пробелы из имен строк.

Пример: T = table([10;20;30],{'M';'F';'F'},'VariableNames',{'Age','Gender'},'RowNames',{'P1','P2','P3'}) создает таблицу с именами переменных, так и строк.

Начиная с R2021a

Имена размерностей, заданные как двухэлементный массив ячеек из векторов символов или двухэлементные строковые массивы, элементы которого непусты и различны.

  • table функция также хранит имена размерностей в DimensionNames свойство таблицы.

  • Имена размерностей могут иметь любые символы Юникода, включая пространства и символы, отличные от ASCII.

Перед R2021a можно задать имена размерностей только путем установки DimensionNames свойство.

Свойства

расширить все

Доступ к свойствам метаданных таблицы

Таблица содержит свойства метаданных, которые описывают таблицу и ее переменные. Доступ к этим свойствам с помощью синтаксиса tableName.Properties. PropertyName, где PropertyName - имя свойства. Для примера можно получить доступ к именам переменных в таблице T использование синтаксиса T.Properties.VariableNames.

Можно вернуть сводные данные всех свойств метаданных с помощью синтаксиса tableName.Properties.

Таблицы обеспечивают доступ к метаданным через Properties свойство, поскольку вы можете получить доступ к данным таблицы непосредственно с помощью синтаксиса точки. Для примера, если таблица T имеет переменную с именем Var1, тогда вы можете получить доступ к значениям в переменной с помощью синтаксиса T.Var1.

Метаданные таблицы

Имена размерностей, заданные как двухэлементный массив ячеек из векторов символов или двухэлементные строковые массивы.

  • Имена размерностей могут иметь любые символы Юникода, включая пространства и символы, отличные от 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 не пуст, количество имен строк должно равняться количеству строк в таблице.

  • Имена строк могут содержать любые символы в кодировке Юникод, включая пространства и символы, отличные от 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    

Описание таблицы, заданное как вектор символов или строковый скаляр. Это описание видим при использовании 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  

Дополнительные сведения о таблице, заданные как массив. Вы можете прикрепить данные любого рода к таблице с помощью этого свойства.

Пример

Составьте таблицу. Прикрепите анонимную функцию как часть пользовательских данных, которая связана с таблицей.

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.

Переменные метаданные

Имена переменных, заданные как массив ячеек из векторов символов или строковые массивы, элементы которого непусты и различны. Количество имен должно равняться количеству переменных.

  • Имена переменных могут иметь любые символы Юникода, включая пространства и символы, отличные от 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  

Описание переменной, заданное как массив ячеек из векторов символов или строковые массивы Это свойство может быть пустым массивом ячеек, что по умолчанию. Если массив не пуст, то он должен содержать столько элементов, сколько есть переменных. Можно задать отдельный пустой символьный вектор или пустую строку для переменной, которая не имеет описания.

  • Описания переменных видны при использовании 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  

Переменные модули, заданные как массив ячеек из векторов символов или строковые массивы. Это свойство может быть пустым массивом ячеек, который является значением по умолчанию. Если массив не пуст, то он должен содержать столько элементов, сколько есть переменных. Можно задать отдельный пустой символьный вектор или пустую строку для переменной, которая не имеет модулей.

  • Переменные модули видны при использовании 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 свойство timetable.

Пользовательские метаданные

Настроенные метаданные таблицы и ее переменных, заданные как 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

Поведение изменено в R2019b

Поведение изменено в R2021a

Расширенные возможности

.
Введенный в R2013b
Для просмотра документации необходимо авторизоваться на сайте