Закажите поля массива структур
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: 7orderfields только заказывает поля верхнего уровня. Это не рекурсивно.
cell2struct | имена полей | getfield | isfield | rmfield | setfield | struct () | struct2cell