Закажите поля массива структур
s = orderfields (s1)
s = orderfields (s1, s2)
s = orderfields (s1, c)
s = orderfields (s1, перманент)
[s, перманент] = orderfields (...)
s = orderfields(s1)
заказывает поля в s1
так, чтобы новый массив структур s
имел имена полей в лексикографическом порядке ASCII.
s = orderfields(s1, s2)
заказывает поля в s1
так, чтобы новый массив структур s
имел имена полей в том же порядке как те в s2
. Структуры sl
и s2
должны иметь те же поля.
s = orderfields(s1, c)
заказывает поля в s1
так, чтобы новый массив структур s
имел имена полей в том же порядке как имена в c
. Входной параметр c
может быть массивом ячеек из символьных векторов или массивом строк. Структура s1
и массив c
должна содержать те же имена полей.
s = orderfields(s1, perm)
заказывает поля в s1
так, чтобы новый массив структур s
имел имена полей в порядке, заданном индексами в векторе перестановки perm
.
Если s1
имеет имена полей N
, элементы perm
должны быть расположением чисел от 1
до N
. Это особенно полезно, если бы у вас есть больше чем один массив структур, который требуется переупорядочить таким же образом.
[s, perm] = orderfields(...)
возвращает вектор перестановки представление изменения, по порядку выполняемого на полях массива структур, который приводит к s
.
Создайте структуру s
. Затем создайте новую структуру из s
, но с полями, заказанными в алфавитном порядке:
s = struct('b', 2, 'c', 3, 'a', 1) s = b: 2 c: 3 a: 1 snew = orderfields(s) snew = a: 1 b: 2 c: 3
Расположите поля s
в порядке, заданном вторым (массив ячеек) аргумент orderfields
. Возвратите новую структуру в snew
, и вектор перестановки раньше создавал его в perm
:
[snew, perm] = orderfields(s, {'b', 'a', 'c'}) snew = b: 2 a: 1 c: 3 perm = 1 3 2
Теперь создайте новую структуру, s2
, имея те же имена полей как s
. Переупорядочьте поля с помощью вектора перестановки, возвращенного в предыдущей операции:
s2 = struct('b', 3, 'c', 7, 'a', 4) s2 = b: 3 c: 7 a: 4 snew = orderfields(s2, perm) snew = b: 3 a: 4 c: 7
orderfields
только заказывает поля верхнего уровня. Это не рекурсивно.
cell2struct
| имена полей
| getfield
| isfield
| rmfield
| setfield
| struct ()
| struct2cell