`mxe_readdata`

**Note:** This is a private function.

Read data points, data weights, indices of data to be worked on, and data tag, from the given data argument. (Used in functions that have a data input argument)

**Syntax**

data_struct = mxe_readdata(data) data_struct = mxe_readdata(data, false)

**Description**

The output `data_struct` has the following fields:

(`data``n-by-N`, where`n`is the data dimensions and`N`is the number of total data points) : Data matrix.(`index``1-by-L`where`L`is the size of the demanded subset of data points. default value:`[]`) : Data indexing vector for selecting a subset of data (Only numeric indexing is supported. Logical indexing is not supported.)(`weight``1-by-N`, if index is empty,`1-by-L`if indexing is used. default value:`[]`) : Data weight vector,(integer): the number of data points (in the demanded subset).`size`(string, default value:`tag``''`): A tag for the data that can be used for special purposes.

`data_struct = mxe_readdata(data)` reads the given `data` and fills the output structure `data_struct`.

The given `data` may be a matrix, in which case it is returned untouched as `data_struct.data`, and the other fields of `data_struct` are set to their default values.

In case `data` is a structure, it may contain any of the fields mentioned above for `data_struct` (Note that the field `data.data` is mandatory). The fields in `data` are copied to the output structure. If `data` includes a non-empty `index` field, this syntax applies the indexing to the data (`data_struct.data = data.data(:,data.index)`) and empties the index (`data_struct.index = []`).

`data_struct = mxe_readdata(data, false)` does not apply the indexing. Instead, returns the `index` for customised use. If input `data` is a structure without an `index` field (or with an empty value for `index`), an index refering to all the data is generated.

**Note:** Use this function only when you use `weight` or `index` in your function. The passed in data argument can be passed out to other functions intact, when `weight` or `index` are not used in your function.

**Note:** In MATLAB versions R2011b and above, instead of the data matrix, you can give a `matlab.io.MatFile` object referring to a MAT-file containing a variable named `data` with specifications as pointed out above.