Example #1
0
        public void ZapolnenieTabl(object a)
        {
            InfaDlyaZapolnenieTablIzARFF infa = (InfaDlyaZapolnenieTablIzARFF)a;
            Instances    dataSet            = infa.dataInstaces;
            DataGridView dataGridViewFormat = infa.dataGridView;
            //DataGridView dataGridViewFormat = new DataGridView();

            int countAttribute = dataSet.numAttributes();
            int countRow       = dataSet.numInstances();

            if (infa.dataTrain)
            {
                dataDoubleTrain.Clear();
            }
            else
            {
                dataDoubleTest.Clear();
            }

            dataGridViewFormat.Invoke((Action)(() =>
            {
                dataGridViewFormat.Columns.Clear();
            }));
            //Добавление столбцов = атрибутам

            /*
             * for (int i = 0; i < countAttribute; i++)
             * {
             *  dataGridViewFormat.Invoke((Action)(() =>
             *  {
             *      dataGridViewFormat.Columns.Add("column1_" + i, dataSet.attribute(i).name());
             *  }));
             * }
             */
            dataGridViewFormat.Invoke((Action)(() =>
            {
                dataGridViewFormat.Columns.Add("column1_class", "class");
            }));

            for (int k = 0; k < countRow; k++)
            {
                List <double> rowDouble = new List <double>();

                String[] row = new String[1];

                for (int i = 0; i < countAttribute; i++)
                {
                    if (i < countAttribute - 1)  //Ограничение: чтобы не добавлялась метка класса как атрибут
                    {
                        rowDouble.Add(dataSet.get(k).value(i));
                    }
                    else
                    {
                        row[0] = dataSet.get(k).value(i).ToString();
                    }

                    //row[i] = dataSet.get(k).value(i).ToString();
                    //dataGridViewFormat.Rows[k].Cells[i].Value = rowDouble[i];
                }

                //Добавление строки в таблицу
                dataGridViewFormat.Invoke((Action)(() =>
                {
                    dataGridViewFormat.Rows.Add(row);
                    dataGridViewFormat.Rows[k].HeaderCell.Value = (k + 1).ToString();
                }));

                if (infa.dataTrain)
                {
                    dataDoubleTrain.Add(rowDouble);
                }
                else
                {
                    dataDoubleTest.Add(rowDouble);
                }

                label1.Invoke((Action)(() => { label1.Text = "Загружено данных:" + k + "/" + countRow; }));
                progressBar1.Invoke((Action)(() => { progressBar1.Value = k; }));
            }
        }