public CategClusterSet(IndivDatas inds)
 {
     if (inds != null)
     {
         m_indivs = (IndivDatas)inds.Clone();
         if ((m_indivs != null) && (m_indivs.Count > 0))
         {
             var p = m_indivs.First();
             m_nvars = p.IntData.Length;
         }
     }
 }
 public CategClusterSet(OrdModelView model)
 {
     m_model = model;
     if (model != null)
     {
         m_indivs = (IndivDatas)model.Individus.Clone();
         if ((m_indivs != null) && (m_indivs.Count > 0))
         {
             var p = m_indivs.First();
             m_nvars = p.IntData.Length;
         }
     }
 }
 }// mySetSummary
 private void myChangeModelData()
 {
     try
     {
         int nv = 0;
         int nr = 0;
         double[,] doubledata = null;
         int[,] intdata = null;
         string[] colnames = null;
         string[] rownames = null;
         OrdModelView model = this.OrdModelView;
         m_indivs = null;
        
         if (model != null)
         {
             m_indivs = model.Individus;
             var oVars = model.CurrentVariables.ToArray();
             nv = oVars.Length;
             nr = m_indivs.Count;
             doubledata = new double[nr, nv];
             intdata = new int[nr, nv];
             var oInds = m_indivs.ToArray();
             rownames = new String[nr];
             colnames = new String[nv];
             for (int i = 0; i < nv; ++i)
             {
                 var v = oVars[i];
                 colnames[i] = v.Name;
             }// i
             for (int i = 0; i < nr; ++i)
             {
                 var v = oInds[i];
                 String sId = v.IdString;
                 if (String.IsNullOrEmpty(sId))
                 {
                     sId = v.Name;
                 }
                 rownames[i] = sId;
                 double[] dd = v.DoubleData;
                 int nx = (dd.Length < nv) ? dd.Length : nv;
                 for (int j = 0; j < nx; ++j)
                 {
                     doubledata[i, j] = dd[j];
                 }// j
                 int[] zz = v.IntData;
                 nx = (zz.Length < nv) ? zz.Length : nv;
                 for (int j = 0; j < nx; ++j)
                 {
                     intdata[i, j] = zz[j];
                 }
             }// i
         }// model
         this.InitialData = doubledata;
         this.Classes = intdata;
         this.VarNames = colnames;
         this.IndNames = rownames;
         mySetSummary();
         myChangeData();
     }
     catch (Exception /*ex */)
     {
     }
 }// myChangeModelData
 public MatriceUserControl()
 {
     m_busy = true;
     m_ordmodelview = null;
     m_indivs = null;
     m_colcells = null;
     m_rowcells = null;
     m_refclasses = null;
     m_cts = null;
     m_varcells = null;
     m_indivcells = null;
     m_datacells = null;
     m_defaultitem = null;
     InitializeComponent();
     m_busy = false;
 }