Encode: Difference between revisions
Jump to navigation
Jump to search
imported>Bob No edit summary |
imported>Jeremy |
||
(4 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
:str = encode(item,varname) | :str = encode(item,varname) | ||
:str = encode(item,varname,''varindex'',''options'') | |||
:str = encode(item,varname,varindex,options) | |||
===Description=== | ===Description=== | ||
Line 19: | Line 18: | ||
====Inputs==== | ====Inputs==== | ||
* '''item''' | * '''item''' = variable to be recreated by executable code | ||
====Optional Inputs==== | ====Optional Inputs==== | ||
* '''varname''' | * '''varname''' = name for variable to be created by executable code | ||
* '''varindex''' | * '''varindex''' = an internal index number used for struct and cell assignments when multiple layers of complex variable types are detected | ||
* '''options''' = a structure with one or more of the fields identified below. | |||
====Outputs==== | ====Outputs==== | ||
* '''str''' | * '''str''' = output string with executable code | ||
===Options=== | ===Options=== | ||
* '''max_array_size''' : [10000] Maximum size allowed for any array dimension. Arrays with any size larger than this will be returned as simply [NaN] | * '''max_array_size''' : [10000] Maximum size allowed for any array dimension. Arrays with any size larger than this will be returned as simply [NaN] | ||
* '''structformat''' : [ 'struct' | {'dot'} ] defines how structures are encoded. 'struct' uses a "struct('a',val)" style (but can get very complex with large structures). 'dot' uses "x.a = val" format which is easier to read, but less compact. | * '''structformat''' : [ 'struct' | {'dot'} ] defines how structures are encoded. 'struct' uses a "struct('a',val)" style (but can get very complex with large structures). 'dot' uses "x.a = val" format which is easier to read, but less compact. | ||
* '''forceoneline''' : [ {'off'} | 'on' ] remove all line breaks and ellipses from output. WARNING: this can cause a VERY long line on big objects and may exceed the maximum line length of editors or even MATLAB. | * '''forceoneline''' : [ {'off'} | 'on' ] remove all line breaks and ellipses from output. WARNING: this can cause a VERY long line on big objects and may exceed the maximum line length of editors or even MATLAB. | ||
* '''includeclear''' : [ {'on'} | 'off'] use 'clear' commands before assignment statements (may be required to avoid warnings when existing variables are replaced). | * '''includeclear''' : [ {'on'} | 'off'] use 'clear' commands before assignment statements (may be required to avoid warnings when existing variables are replaced). | ||
* '''compression''' : [ 'format' | 'speed' |{'runs'}] defines how to compress the display of numeric values. | |||
:* ''' 'format' ''' identifies the most compact format for each given number. The most compact form for arrays of mixed floating point and integer values, but slow. | |||
:* ''' 'speed' ''' identifies the most compact format for groups of numbers and provides the fastest conversion. Vectors with mixed integer and floating point will be less compact in size. | |||
:* ''' 'runs' ''' identifies runs of numbers and compresses them using Matlab's colon notation. Also compresses groups of identicial numbers. Best format for vectors and arrays with repeating numbers and linearly increasing or decreasing series. Intermediate in speed. | |||
* '''floatdigits''' : [ 12 ] number of digits to show in floating point numbers. | |||
* '''wrappedobject''' : [ {'off'} | 'on' ] indicates when the item being passed is an object wrapped in a cell array in order to "hide" it from the overloaded method. When 'on', encode will strip the object out of the cell before encoding it recursively. This approach allows all the input logic to reside here. | |||
'''Example''' | '''Example''' | ||
Line 45: | Line 48: | ||
<pre> | <pre> | ||
>> p = preprocess('default','meancenter'); | >> p = preprocess('default','meancenter'); | ||
>> encode(p) | >> encode(p) | ||
</pre> | </pre> |
Latest revision as of 12:26, 22 February 2013
Purpose
Translates a variable into MATLAB executable code.
Synopsis
- str = encode(item,varname)
- str = encode(item,varname,varindex,options)
Description
The created code can be eval'd or included in an m-file to reproduce the variable. This is essentially an inverse function of "eval" for variables.
Input is a variable (item) and an optional name for that variable (varname). If (varname) is omitted, the input variable name will be used. If varname is empty, leading code which does assignment is omitted.
Output is a string (str) which can be inserted into an m-file or passed to eval for execution.
Inputs
- item = variable to be recreated by executable code
Optional Inputs
- varname = name for variable to be created by executable code
- varindex = an internal index number used for struct and cell assignments when multiple layers of complex variable types are detected
- options = a structure with one or more of the fields identified below.
Outputs
- str = output string with executable code
Options
- max_array_size : [10000] Maximum size allowed for any array dimension. Arrays with any size larger than this will be returned as simply [NaN]
- structformat : [ 'struct' | {'dot'} ] defines how structures are encoded. 'struct' uses a "struct('a',val)" style (but can get very complex with large structures). 'dot' uses "x.a = val" format which is easier to read, but less compact.
- forceoneline : [ {'off'} | 'on' ] remove all line breaks and ellipses from output. WARNING: this can cause a VERY long line on big objects and may exceed the maximum line length of editors or even MATLAB.
- includeclear : [ {'on'} | 'off'] use 'clear' commands before assignment statements (may be required to avoid warnings when existing variables are replaced).
- compression : [ 'format' | 'speed' |{'runs'}] defines how to compress the display of numeric values.
- 'format' identifies the most compact format for each given number. The most compact form for arrays of mixed floating point and integer values, but slow.
- 'speed' identifies the most compact format for groups of numbers and provides the fastest conversion. Vectors with mixed integer and floating point will be less compact in size.
- 'runs' identifies runs of numbers and compresses them using Matlab's colon notation. Also compresses groups of identicial numbers. Best format for vectors and arrays with repeating numbers and linearly increasing or decreasing series. Intermediate in speed.
- floatdigits : [ 12 ] number of digits to show in floating point numbers.
- wrappedobject : [ {'off'} | 'on' ] indicates when the item being passed is an object wrapped in a cell array in order to "hide" it from the overloaded method. When 'on', encode will strip the object out of the cell before encoding it recursively. This approach allows all the input logic to reside here.
Example
Create code to reproduce a preprocessing structure
>> p = preprocess('default','meancenter'); >> encode(p)