Массив структур
Массив структур является типом данных, что связанные с группами данные с помощью контейнеров данных вызвали поля. Каждое поле может содержать любой тип данных. Данные о доступе в поле с помощью записи через точку формы structName.fieldName
.
Когда у вас будут данные, чтобы поместить в новую структуру, создайте структуру с помощью записи через точку, чтобы назвать ее поля по одному:
s.a = 1; s.b = {'A','B','C'}
s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
Также можно создать массив структур с помощью функции struct
, описанной ниже. Можно задать много полей одновременно или создать нескалярный массив структур.
s = struct
s = struct(field,value)
s = struct(field1,value1,...,fieldN,valueN)
s = struct([])
s = struct(obj)
s = struct
создает скалярную структуру (1 на 1) без полей.
s = struct(
создает массив структур с заданным полем и значением. Входной параметр field
,value
)value
может быть любым типом данных, такой как числовое, логическое, символ или массив ячеек.
Если value
не является массивом ячеек, или если value
является скалярным массивом ячеек, то s
является скалярной структурой. Например, s = struct('a',[1 2 3])
создает структуру 1 на 1, где s.a = [1 2 3]
.
Если value
является нескалярным массивом ячеек, то s
является массивом структур с теми же размерностями как value
. Каждый элемент s
содержит соответствующий элемент value
. Например, s = struct('x',{'a','b'})
возвращает s(1).x = 'a'
и s(2).x = 'b'
.
Если value
является массивом пустой ячейки {}
, то s
является пустой структурой (0 на 0).
s = struct(field1,value1,...,fieldN,valueN)
создает массив структур с несколькими полями.
Если ни одни из входных параметров value
не массивы ячеек, или если все входные параметры value
, которые являются массивами ячеек, являются скалярами, то s
является скалярной структурой.
Если какие-либо из входных параметров value
являются нескалярным массивом ячеек, то s
имеет те же размерности как тот массив ячеек. Кроме того, если два или больше входных параметров value
являются нескалярными массивами ячеек, то у них всех должны быть те же размерности.
Для любого value
, который является скалярным массивом ячеек или массивом любого другого типа данных, struct
вставляет содержимое value
в соответствующем поле для всех элементов s
. Например, s = struct('x',{'a','b'},'y','c')
возвращает s(1).x = 'a'
, s(2).x = 'b'
, s(1).y = 'c'
и s(2).y = 'c'
.
Если какой-либо вход value
является массивом пустой ячейки, {}
, то вывод s
является пустой структурой (0 на 0). Чтобы задать пустое поле и сохранить значения других полей, используйте []
в качестве входа value
вместо этого.
s = struct([])
создает пустую структуру (0 на 0) без полей.
s = struct(
создает скалярную структуру с именами полей и значениями, которые соответствуют свойствам obj
)obj
. Функция struct
не преобразовывает obj
, а скорее создает s
как новую структуру. Эта структура не сохраняет информацию о классе, таким образом частные, защищенные, и скрытые свойства становятся достоянием общественности поля в s
. Функция struct
выдает предупреждение, когда вы используете этот синтаксис.
cell2struct
| fieldnames
| isfield
| isstruct
| orderfields
| rmfield
| struct2cell
| struct2table
| substruct
| table
| table2struct