dataset2struct

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

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

The 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×1 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
    {'SMITH'   }
    {'JOHNSON' }
    {'WILLIAMS'}
    {'JONES'   }
    {'BROWN'   }
    {'DAVIS'   }
    {'MILLER'  }
    {'WILSON'  }

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