(Не Рекомендуемый) Преобразовать массив структуры в массив набора данных
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];
SS = 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.