Преобразуйте массив структур в массив набора данных
Тип данных dataset
может быть удален в будущем релизе. Чтобы работать с гетерогенными данными, используйте тип данных MATLAB® table
вместо этого. Смотрите MATLAB документация table
для получения дополнительной информации.
ds = struct2dataset(S)
ds = struct2dataset(S,Name,Value)
Преобразуйте скалярный массив структур в массив набора данных с помощью опций по умолчанию.
Создайте массив структур, чтобы преобразовать.
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 = 3x1 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 array
{'Name'} {'Variables'}
ds.Properties.ObsNames
ans = 3x1 cell array
{'CLARK' }
{'BROWN' }
{'MARTIN'}
S
Введите массив структурВведите массив структур, чтобы преобразовать в массив набора данных, заданный как скалярный массив структур с полями N, каждый со строками M или нескалярным M-by-1 массив структур с полями N.
Типы данных: struct
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (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
— OutputВыведите массив набора данных, возвращенный по умолчанию с наблюдениями 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.