 
 
 
 
 
 
 
  
Subsetting data series is normally done through a sequence mask. The following methods show the construction of a sequence mask.
 
SequenceMask msk(int n_in_seq, bool accept); #include "Qdos.h" QdRScalar_var xdo = QdRScalar::narrow((* object_list)[0]); int ndata = xdo->sequence_size(); SequenceMask msk(ndata, true);
 
SequenceMask msk(const SequenceMask &mask); 
The method get_mask
 operates on sequence types to construct a mask based on some criterion
 applicable to the particular sequence type. This generally takes the form
 
 SequenceMask msk(QdSequence_var seq->get_mask(condition)); 
The constructor for a sequence mask here creates a mask msk using
 the get_mask() method for a QdSequence object. The possible values of
 argument condition depend on the sequence type used. Some example
 conditions are given below.
 
 
QdRScalarSeq::InRange(double x1, double x2) #include "Qdos.h" double xmin = 0.0; double xmax = 100.0; QdRScalarSeq_var xdo = QdRScalarSeq::narrow(input1); SequenceMask msk( xdo->get_mask(InRange(xmin, xmax)) );
 
QdTimeSeq::InRange 
  #include "qplug_if.h"
  #include "Qdos.h"
  #include "QsasUtils.h"
  using namespace QSAS;
  QdObject_var input1 = (* object_list)[1]; 
  QdObject_var input2 = (* object_list)[2]; 
  QdTimeInterval_var interval = get_timeinterval(input1);
  QdTimeSeq_var tt = get_timetags(input2);
  // create mask based on timetags from input 2 
  //   that lie in interval set by input 1
  SequenceMask msk(tt->get_mask(QdTimeSeq::InRange(interval->start(),
                                                   interval->end())));
   
 
EQ, NEQ, LE, GE, LT, GT 
  #include "qplug_if.h"
  #include "Qdos.h"
  #include "QsasUtils.h"
  using namespace QSAS;
  QdTime_var tc = new QdTime("02-Jan-2000 12:00:00.000");
  QdTimeSeq_var tt_in = get_timetags((* object_list)[2]);
  // create mask for timetags less than specified value
   SequenceMask msk(tt_in->get_mask( QdTimeSeq::LT( tc )));
   
 
(SequenceMask) msk[n] = (bool) accept; 
  #include "Qdos.h"
  QdRScalar_var xdo = QdRScalar::narrow((* object_list)[0]);
  int ndata = xdo->sequence_size();
  SequenceMask msk(ndata, true);
  for(int i=0; i<ndata; i++)
  {
    // create mask that keeps only positive values
    if( xdo[i] < 0 ) msk[i] = false;
  }
  
 
 
 
 
 
 
