(Не Рекомендуемый) Преобразовать массив структуры в массив набора данных
The dataset
тип данных не рекомендуется. Для работы с неоднородными данными используйте MATLAB®
table
вместо этого тип данных. См. MATLAB table
документация для получения дополнительной информации.
Преобразуйте скалярный массив структуры в массив набора данных с помощью опций по умолчанию.
Создайте массив структур для преобразования.
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'}
S
- Входной массив структурВход массив структуры для преобразования в массив набора данных, заданный как скалярный массив структур с N полями, каждый с M строками или нескаляром массив структур M 1 с N полями.
Типы данных: struct
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'ReadObsNames','myField'
задает, что поле структуры, myField
, содержит имена наблюдений.'ReadObsNames'
- Имя структурного поля, содержащего имена наблюдений для массива набора данныхfalse
(по умолчанию) | символьный вектор | строковый скалярИмя поля структуры, содержащего имена наблюдений для массива выходного набора данных, заданное как разделенная разделенными запятой парами, состоящая из 'ReadObsNames'
и вектор символов или строковый скаляр, содержащий имя поля из массива входа структур, S
. Когда вы задаете имя поля, struct2dataset
использует это поле для создания имен наблюдений и наборов ds.Properties.DimNames
равно {ReadObsNames,'Variables'}
.
Например, чтобы указать, что имена наблюдений находятся в поле структуры, Names
, использование
Пример: 'ReadObsNames','Names'
По умолчанию или если ReadObsNames
равно false
, struct2dataset
не создает имен наблюдений, если вы не задаете имена с помощью аргумента пары "имя-значение" ObsNames
.
'ObsNames'
- Имена наблюдений для массива набора данныхИмена наблюдений для массива набора данных выхода, заданные как разделенная запятой пара, состоящая из 'ObsNames'
и строковые массивы или массив ячеек векторов символов, содержащий имена наблюдений. Имена не должны быть допустимыми идентификаторами MATLAB, но они должны быть уникальными.
'AsScalar'
- Индикатор того, как лечить скалярную структуруfalse
| true
Индикатор того, как обработать скаляр входа массива структур, заданный как разделенная запятой пара, состоящий из 'AsScalar'
и любой из них true
или false
. Значение по умолчанию true
если S
является скалярным массивом структур, и false
в противном случае.
По умолчанию struct2dataset
преобразует скалярный массив структуры с N полями, каждый с M строками, в M -by N массив набора данных.
Если вместо этого вы задаете AsScalar
равно false
для скаляра входа массива структур, затем struct2dataset
преобразует S
в массив набора данных с N наблюдениями.
ds
- Массив выходного набора данныхВыходной массив набора данных, возвращенный по умолчанию с 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 наблюдениями.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.