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=8×4 struct
    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.