dataset2struct

Класс: набор данных

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

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

Синтаксис

S = dataset2struct(D)
S = dataset2struct(D,'AsScalar',true)

Описание

S = dataset2struct(D) преобразовывает массив набора данных в массив структур. Каждая переменная D становится полем в S. Если D является M-by-N массив набора данных, то S является M-by-1 и имеет поля N. Если D содержит имена наблюдения, то S содержит те имена в дополнительном поле ObsNames.

S = dataset2struct(D,'AsScalar',true) преобразовывает массив набора данных в скалярную структуру. Каждая переменная D становится полем в S. Если D является M-by-N массив набора данных, то S имеет поля N, каждое из который как строки M. Если D содержит имена наблюдения, то S содержит те имена в дополнительном поле ObsNames.

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

D

M-by-N массив набора данных.

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

S

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

Если вы задаете 'AsScalar',true, то S является скалярной структурой, с полями N, каждым со строками M.

Примеры

развернуть все

Загрузите демонстрационный массив набора данных.

load('hospital')

Создайте массив набора данных, D, который имеет только подмножество наблюдений и переменных.

D = hospital(1:8,{'LastName','Sex','Age'});
size(D)
ans = 1×2

     8     3

Массив набора данных D имеет 8 наблюдений и 3 переменные.

Преобразуйте D в массив структур.

S = dataset2struct(D)
S = 8x1 struct array with fields:
    ObsNames
    LastName
    Sex
    Age

Структурой является 8x1, соответствуя этим 8 наблюдениям в массиве набора данных. S также имеет поле ObsNames, поскольку D имел имена наблюдения.

Отобразите полевые данные для первого элемента S.

S(1)
ans = struct with fields:
    ObsNames: 'YPL-320'
    LastName: 'SMITH'
         Sex: Male
         Age: 38

Эта информация соответствует первому наблюдению (строка) массива набора данных.

Загрузите демонстрационный массив набора данных.

load('hospital')

Создайте массив набора данных, D, который имеет только подмножество наблюдений и переменных.

D = hospital(1:8,{'LastName','Sex','Age'});
size(D)
ans = 1×2

     8     3

Массив набора данных D имеет 8 наблюдений и 3 переменные.

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

S = dataset2struct(D,'AsScalar',true)
S = struct with fields:
    ObsNames: {8x1 cell}
    LastName: {8x1 cell}
         Sex: [8x1 nominal]
         Age: [8x1 double]

Данными в областях скалярной структуры является 8x1, соответствуя этим 8 наблюдениям в массиве набора данных. S также имеет поле ObsNames, поскольку D имел имена наблюдения.

Отобразите данные для поля LastName.

S.LastName
ans = 8x1 cell array
    {'SMITH'   }
    {'JOHNSON' }
    {'WILLIAMS'}
    {'JONES'   }
    {'BROWN'   }
    {'DAVIS'   }
    {'MILLER'  }
    {'WILSON'  }

Поле LastName структуры содержит все данные, которые были в исходной переменной типа массив набора данных, LastName.