curvemodel

curvemodel#

Purpose

Handle object for implicit representation of curves.

Syntax

  h=curvemodel('Source',r1,'yRef',fun,'getXFcn',{fun,fun,fun}, ...
     'DimPos',[1 3 2]);

Description

Multi-dim curve are multi-dimensional arrays (.Y field) with information about the various dimensions (.X,.Xlab fields). curvemodel store similar data sets but provide methods to generate the .X,.Xlab,.Y fields content dynamically from an information source.

curvemodel objects are derived from MATLAB handle objects. If you copy an object's handle, MATLAB copies only the handle and both the original and copy refer to the same object data.

The principle of curve models is that the computation only occurs when the user seeks the required data.

Important fields are

  • .Source contains the data to be used as source. The source can be a pointer. For example cf.v_handle.Stack{'def1'} can be used to point to a set of deformations stored in a feplot, or iiplot stack.
  • .DimPos is used to allow permutations of the array dimensions (implicit equivalent of permute(c.Y,c.DimPos).
  • .xRef is a cell array of length the number of dimensions in .Y allowing the extraction from the source.

Documented methods are

  • .GetData : creates a copy of the full implicit data.

This functionality mostly undocumented. Support functions are process_r that handles delayed signal processing requests, ii_signal that supports curvemodel commands associated with signal processing. The following is an example for users willing to dig into the code.

C1=d_signal('RespsweepSpec') % Create a spectrogram model
C2=C1.GetData; % create a copy where the spectrogram is computed
C2.PlotInfo=ii_plp('plotinfo 2D');
iicom('curveinit','Spectro',C2);