Struct Operations ==================== struct ------ **Syntax** :: s = struct s = struct(fieldname1,value1,…,fieldnameN,valueN) s = struct([]) **Description** This operation returns struct arras with the specified fields and values. - The form ``struct`` returns a 1 by 1 struct array with no fields. - The form ``struct(fieldname1,value1,…,fieldnameN,valueN)`` returns a struct array with the given field and values. If any of the field or values provided or non-scalar, then the dimensions of all the non-scalar field and values should be the same, and the array returned will have the non-scalar dimension. - The form ``struct([])`` returns a 0 by 0 empty struct array with no fields. fieldnames ---------- **Syntax** :: fieldnames(s) **Description** Given a struct or struct array, this returns the names of the fields as a cell array. isfield ------------- **Syntax** :: tf = isfield(S, 'field') tf = isfield(S, C) This function determines if a structure array contains the given field name(s). - The first form takes a single field name and returns a scalar logical value which is true if the structure array contains the given field name, and false otherwise. - The second form accepts a structure array and a cell array of character vectors, each indicating a field name. The return value of the function is a logical array with the same dimensions as the cell array, containing a logical value indicating, for each field name, if that field is present in the given structure array. isstruct ------------- **Syntax** :: tf = isstrut(A) This function determines if a value is a scalar or array of structures. It returns a scalar true if so, and false otherwise. rmfield ------------- **Syntax** :: s = rmfield(s,field) This function removes the named field or fields from the structure array ``s`` and returns the modified result. ``field`` should either be a single field name, or a cell array of field names. getfield ------------- **Syntax** :: value = getfield(s, field) This function extracts the value of the named ``field`` from the scalar structure ``s``. MATLAB supports more complicated forms of the ``getfield`` function, but these forms are not currently supported by Grackle. setfield ---------------- **Syntax** :: s = setfield(s,field,value) Set the value of ``field`` in scalar structure ``s`` to ``value``, returning the modified result. ``field`` should be a character array denoting a field name. MATLAB supports more complicated forms of the ``setfield`` function, but these forms are not currently supported by Grackle.