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