Create List of Sample Measurements¶
Synopsis¶
Create a lsit of sample measurements.
Results¶
Output:
id = 0         measurement vector = [1, 2, 4]  frequency = 1
id = 1         measurement vector = [2, 4, 5]  frequency = 1
id = 2         measurement vector = [3, 8, 6]  frequency = 1
id = 0         measurement vector = [1, 2, 4]  frequency = 1
id = 1         measurement vector = [2, 4, 5]  frequency = 1
id = 2         measurement vector = [3, 8, 6]  frequency = 1
Size = 3
Total frequency = 3
Code¶
C++¶
#include "itkListSample.h"
#include "itkVector.h"
int
main(int, char *[])
{
  using MeasurementVectorType = itk::Vector<float, 3>;
  using SampleType = itk::Statistics::ListSample<MeasurementVectorType>;
  SampleType::Pointer sample = SampleType::New();
  MeasurementVectorType mv;
  mv[0] = 1.0;
  mv[1] = 2.0;
  mv[2] = 4.0;
  sample->PushBack(mv);
  sample->Resize(3);
  mv[0] = 2.0;
  mv[1] = 4.0;
  mv[2] = 5.0;
  sample->SetMeasurementVector(1, mv);
  mv[0] = 3.0;
  mv[1] = 8.0;
  mv[2] = 6.0;
  sample->SetMeasurementVector(2, mv);
  for (unsigned long i = 0; i < sample->Size(); ++i)
  {
    std::cout << "id = " << i << "\t measurement vector = " << sample->GetMeasurementVector(i)
              << "\t frequency = " << sample->GetFrequency(i) << std::endl;
  }
  SampleType::Iterator iter = sample->Begin();
  while (iter != sample->End())
  {
    std::cout << "id = " << iter.GetInstanceIdentifier() << "\t measurement vector = " << iter.GetMeasurementVector()
              << "\t frequency = " << iter.GetFrequency() << std::endl;
    ++iter;
  }
  std::cout << "Size = " << sample->Size() << std::endl;
  std::cout << "Total frequency = " << sample->GetTotalFrequency() << std::endl;
  return EXIT_SUCCESS;
}
Classes demonstrated¶
- 
template<typename 
TMeasurementVector>
classListSample: public itk::Statistics::Sample<TMeasurementVector> This class is the native implementation of the a Sample with an STL container.
ListSample stores measurements in a list type structure (as opposed to a Histogram, etc.). ListSample allows duplicate measurements. ListSample is not sorted.
ListSample does not allow the user to specify the frequency of a measurement directly. The GetFrequency() methods returns 1 if the measurement exists in the list, 0 otherwise.
- See
 Sample, Histogram
- ITK Sphinx Examples:
 

