文档

Orderfields

结构数组的订单字段

句法

S =订购(S1)
S =订购(S1,S2)
S =订购(S1,C)
S =订购(S1,Perm)
[S,perm] = orderfields(...)

描述

S =订购(S1)订购字段S1使新结构数组s在ASCII字典顺序中具有字段名称。

S =订购(S1,S2)订购字段S1使新结构数组s具有与在相同顺序的字段名称S2。结构slS2必须具有相同的字段。

S =订购(S1,C)订购字段S1使新结构数组s具有与名称相同的字段名称C。输入参数C可以是字符向量的单元格数组或字符串数​​组。结构S1和数组C必须包含相同的字段名称。

S =订购(S1,Perm)订购字段S1使新结构数组s在置换矢量中指定的索引指定的顺序中具有字段名称珀斯

如果S1拥有nfieldnames,元素珀斯必须是数字的安排1n。如果您有多个结构阵列,您希望以相同的方式重新排序,这一点特别有用。

[S,perm] = orderfields(...)返回代表更改的置换矢量,以在结构阵列的字段上执行的顺序s

例子

创建一个结构s。然后从s,但随着字段按字母顺序排序:

s = struct('b',2,'c',3,'a',1)s = b:2 c:3 a:1 snew = orderfields snew = a:1 b:2 c:3 c:3

安排s按照第二个(单元格数)参数指定的顺序Orderfields。返回新结构侦听以及用于创建它的排列向量珀斯

[Snew,perm] = orderfields(s,{'b','a','c'})snew = b:2 a:1 c: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:3 a:4 c:7

尖端

Orderfields仅订购顶级字段。它不是递归的。

在R2006a之前引入

这个话题有帮助吗?