exponenta event banner

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 полей, каждое из которых в виде М строк. Если 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.