Next: Processing Data in Structures, Previous: Creating Structures, Up: Structures [Contents][Index]
Other functions that can manipulate the fields of a structure are given below.
Return the number of fields of the structure s.
Return a cell array of strings naming the elements of the structure
struct. It is an error to call fieldnames with an
argument that is not a structure.
Return true if the x is a structure and it includes an element named name. If name is a cell array of strings then a logical array of equal dimension is returned.
Extract a field from a structure (or a nested structure). For example:
ss(1,2).fd(3).b = 5;
getfield (ss, {1,2}, "fd", {3}, "b")
⇒ 5
Note that the function call in the previous example is equivalent to the expression
i1 = {1,2}; i2 = "fd"; i3 = {3}; i4= "b";
ss(i1{:}).(i2)(i3{:}).(i4)
⇒ 5
See also: setfield, rmfield, isfield, isstruct, fieldnames, struct.
Set a field member in a (nested) structure array. For example:
oo(1,1).f0 = 1;
oo = setfield (oo, {1,2}, "fd", {3}, "b", 6);
oo(1,2).fd(3).b == 6
⇒ ans = 1
Note that the same result as in the above example could be achieved by:
i1 = {1,2}; i2 = "fd"; i3 = {3}; i4 = "b";
oo(i1{:}).(i2)(i3{:}).(i4) == 6
⇒ ans = 1
See also: getfield, rmfield, isfield, isstruct, fieldnames, struct.
Return a copy of the structure (array) s with the field f removed. If f is a cell array of strings or a character array, remove the named fields.
Return a copy of s1 with fields arranged alphabetically or as specified by s2.
Given one struct, arrange field names in s1 alphabetically.
If the second argument is a struct, arrange field names in s1 as they appear in s2. The second argument may also specify the order in a permutation vector or a cell array of strings containing the fieldnames of s1 in the desired order.
The optional second output argument p is assigned the permutation vector which converts the original name order into the new name order.
Examples:
s = struct("d", 4, "b", 2, "a", 1, "c", 3);
t1 = orderfields (s)
⇒ t1 =
{
a = 1
b = 2
c = 3
d = 4
}
t = struct("d", {}, "c", {}, "b", "a", {});
t2 = orderfields (s, t)
⇒ t2 =
{
d = 4
c = 3
b = 2
a = 1
}
t3 = orderfields (s, [3, 2, 4, 1]);
⇒ t3 =
{
a = 1
b = 2
c = 3
d = 4
}
[t4, p] = orderfields (s, {"d", "c", "b", "a"})
⇒ t4 =
{
d = 4
c = 3
b = 2
a = 1
}
p =
1
4
2
3
See also: getfield, rmfield, isfield, isstruct, fieldnames, struct.
Create a subscript structure for use with subsref or
subsasgn. For example:
idx = substruct ("()", {3, ":"})
⇒
idx =
{
type = ()
subs =
{
[1,1] = 3
[1,2] = :
}
}
x = [1, 2, 3; 4, 5, 6; 7, 8, 9];
subsref (x, idx)
⇒ 7 8 9
Next: Processing Data in Structures, Previous: Creating Structures, Up: Structures [Contents][Index]