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