exponenta event banner

struct2dataset

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

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-by-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