struct2dataset

(Не Рекомендуемый) Преобразовать массив структуры в массив набора данных

The dataset тип данных не рекомендуется. Для работы с неоднородными данными используйте MATLAB® table вместо этого тип данных. См. MATLAB table документация для получения дополнительной информации.

Описание

пример

ds = struct2dataset(S) преобразует массив структуры в массив набора данных.

пример

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

Примеры

свернуть все

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

Создайте массив структур для преобразования.

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]

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

Преобразуйте массив структуры в массив набора данных.

ds = struct2dataset(S)
ds = 
    Name              Gender       SystolicBP    DiastolicBP
    {'CLARK' }        {'M'}        124           93         
    {'BROWN' }        {'F'}        122           80         
    {'MARTIN'}        {'M'}        130           92         

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

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

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

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

Это массив структур 3 на 1 с 4 полями.

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

ds = struct2dataset(S,'ReadObsNames','Name')
ds = 
              Gender       SystolicBP    DiastolicBP
    CLARK     {'M'}        124           93         
    BROWN     {'F'}        122           80         
    MARTIN    {'M'}        130           92         

Размер ds 3 на 3, потому что поле структуры Name используется для имен наблюдений, а не как переменная массива набора данных.

ds.Properties.DimNames
ans = 1x2 cell
    {'Name'}    {'Variables'}

ds.Properties.ObsNames
ans = 3x1 cell
    {'CLARK' }
    {'BROWN' }
    {'MARTIN'}

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

свернуть все

Вход массив структуры для преобразования в массив набора данных, заданный как скалярный массив структур с N полями, каждый с M строками или нескаляром массив структур M 1 с N полями.

Типы данных: struct

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

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

Пример: 'ReadObsNames','myField' задает, что поле структуры, myField, содержит имена наблюдений.

Имя поля структуры, содержащего имена наблюдений для массива выходного набора данных, заданное как разделенная разделенными запятой парами, состоящая из 'ReadObsNames' и вектор символов или строковый скаляр, содержащий имя поля из массива входа структур, S. Когда вы задаете имя поля, struct2dataset использует это поле для создания имен наблюдений и наборов ds.Properties.DimNames равно {ReadObsNames,'Variables'}.

Например, чтобы указать, что имена наблюдений находятся в поле структуры, Names, использование

Пример: 'ReadObsNames','Names'

По умолчанию или если ReadObsNames равно false, struct2dataset не создает имен наблюдений, если вы не задаете имена с помощью аргумента пары "имя-значение" ObsNames.

Имена наблюдений для массива набора данных выхода, заданные как разделенная запятой пара, состоящая из 'ObsNames' и строковые массивы или массив ячеек векторов символов, содержащий имена наблюдений. Имена не должны быть допустимыми идентификаторами MATLAB, но они должны быть уникальными.

Индикатор того, как обработать скаляр входа массива структур, заданный как разделенная запятой пара, состоящий из 'AsScalar' и любой из них true или false. Значение по умолчанию true если S является скалярным массивом структур, и false в противном случае.

По умолчанию struct2dataset преобразует скалярный массив структуры с N полями, каждый с M строками, в M -by N массив набора данных.

Если вместо этого вы задаете AsScalar равно false для скаляра входа массива структур, затем struct2dataset преобразует S в массив набора данных с N наблюдениями.

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

свернуть все

Выходной массив набора данных, возвращенный по умолчанию с M переменными наблюдений и N.

  • Если S - скалярный массив структур с N полями, каждый с M строками, затем ds является M -by N массивом набора данных.

  • Если S является нескалярным массивом структур M -by-1 с N полями, затем ds является M -by N массивом набора данных.

  • Если S является скалярным массивом структур с N полями, каждый с M строками и AsScalar задается равным false, затем ds - массив набора данных с N наблюдениями.

Введенный в R2012b