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 имя аргумента и 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