exponenta event banner

struct2table

Преобразовать массив структуры в таблицу

Описание

пример

T = struct2table(S) преобразует массив структуры, S, к таблице, T. Каждое поле S становится переменной в T.

пример

T = struct2table(S,Name,Value) создает таблицу из массива структуры, S, с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

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

Примеры

свернуть все

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

Создание структурного массива, S.

S.Name = {'CLARK';'BROWN';'MARTIN'};
S.Gender = {'M';'F';'M'};
S.SystolicBP = [124;122;130];
S.DiastolicBP = [93;80;92];

S
S = struct with fields:
           Name: {3x1 cell}
         Gender: {3x1 cell}
     SystolicBP: [3x1 double]
    DiastolicBP: [3x1 double]

Скалярная структура, S, имеет четыре поля, каждое с тремя строками.

Преобразование массива структуры в таблицу.

T = struct2table(S)
T=3×4 table
       Name       Gender    SystolicBP    DiastolicBP
    __________    ______    __________    ___________

    {'CLARK' }    {'M'}        124            93     
    {'BROWN' }    {'F'}        122            80     
    {'MARTIN'}    {'M'}        130            92     

Имена полей структуры в S становятся именами переменных в выходной таблице. Размер T 3 на 4.

Изменение Name от переменной к именам строк путем изменения свойства таблицы, T.Properties.RowNames, а затем удаление переменной Name.

T.Properties.RowNames = T.Name;
T.Name = [];

T
T=3×3 table
              Gender    SystolicBP    DiastolicBP
              ______    __________    ___________

    CLARK     {'M'}        124            93     
    BROWN     {'F'}        122            80     
    MARTIN    {'M'}        130            92     

Создайте нескалярный структурный массив, S.

S(1,1).Name = 'CLARK';
S(1,1).Gender = 'M';
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = 'BROWN';
S(2,1).Gender = 'F';
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = 'MARTIN';
S(3,1).Gender = 'M';
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

S
S=3×1 struct array with fields:
    Name
    Gender
    SystolicBP
    DiastolicBP

S является массивом структуры 3 на 1 с четырьмя полями.

Преобразование массива структуры в таблицу.

T = struct2table(S)
T=3×4 table
       Name       Gender    SystolicBP    DiastolicBP
    __________    ______    __________    ___________

    {'CLARK' }    {'M'}        124            93     
    {'BROWN' }    {'F'}        122            80     
    {'MARTIN'}    {'M'}        130            92     

Имена полей структуры в S становятся именами переменных в выходной таблице. Размер T 3 на 4.

Использовать 'AsArray',true для создания таблицы из скалярной структуры, поля которой имеют разное количество строк.

Создайте скалярную структуру, S, с полями name, billing, и test.

S.name = 'John Doe';
S.billing = 127.00;
S.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];
S
S = struct with fields:
       name: 'John Doe'
    billing: 127
       test: [3x3 double]

Поля имеют разное количество строк. Поэтому нельзя использовать struct2table(S), которая использует 'AsArray',false по умолчанию.

Рассматривайте скалярную структуру как массив и преобразуйте ее в таблицу.

T = struct2table(S,'AsArray',true)
T=1×3 table
        name        billing        test    
    ____________    _______    ____________

    {'John Doe'}      127      {3x3 double}

T содержит одну строку.

Входные аргументы

свернуть все

Массив структуры, заданный как массив скалярной структуры.

  • Если S является скалярной структурой с n поля, все из которых имеют m строки, затем T является mоколо-n таблица.

  • Если S является нескаляром mоколо-1 структурный массив с n поля, затем T является mоколо-n таблица.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'RowNames',{'row1','row2','row3'} использует имена строк, row1, row2, и row3 для таблицы, T.

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

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

Если указаны имена строк, которые содержат начальные или конечные пробелы, то struct2table удаляет их из имен строк.

С R2021a г.

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

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

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

Индикатор обработки скалярной структуры, указанной как разделенная запятыми пара, состоящая из 'AsArray' и либо false, true, 0, или 1.

true

struct2table новообращенные S в таблицу с одной строкой и n переменные. Переменные могут быть разных размеров.

false

struct2table преобразует массив скалярной структуры с помощью n поля в mоколо-n таблица. Каждое поле должно иметь m строк. Это поведение по умолчанию

Выходные аргументы

свернуть все

Выходная таблица, возвращенная как таблица. В таблице могут храниться такие метаданные, как описания, единицы измерения переменных, имена переменных и имена строк. Дополнительные сведения см. в разделе «Свойства» table.

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

.
Представлен в R2013b