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