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