示例#1
0
 /// <summary>
 /// Creates an input vector containing specific subset of predictors for the specified readout unit.
 /// </summary>
 /// <param name="readoutUnitName">ReadoutUnit name</param>
 /// <param name="predictors">Available predictors</param>
 public double[] CreateVector(string readoutUnitName, double[] predictors)
 {
     if (predictors.Length != PredictorGeneralSwitchCollection.Length)
     {
         throw new ArgumentException("Incorrect number of predictors", "predictors");
     }
     if (_mapCollection.ContainsKey(readoutUnitName))
     {
         ReadoutUnitMap rum = _mapCollection[readoutUnitName];
         return(CreateVector(predictors, rum.Map, rum.VectorLength));
     }
     else
     {
         return(CreateVector(predictors, PredictorGeneralSwitchCollection, _numOfAllowedPredictors));
     }
 }
示例#2
0
 /// <summary>
 /// Creates input vector containing specific subset of predictors for the ReadoutUnit.
 /// </summary>
 /// <param name="readoutUnitName">ReadoutUnit name</param>
 /// <param name="predictors">Available predictors</param>
 public double[] CreateVector(string readoutUnitName, double[] predictors)
 {
     if (_mapCollection.ContainsKey(readoutUnitName))
     {
         ReadoutUnitMap rum = _mapCollection[readoutUnitName];
         return(CreateVector(predictors, rum.Map, rum.VectorLength));
     }
     else
     {
         if (predictors.Length != _numOfPredictors)
         {
             throw new ArgumentException("Incorrect number of predictors", "predictors");
         }
         return((double[])predictors.Clone());
     }
 }
示例#3
0
        /// <summary>
        /// Creates an input vector collection where each vector contains the specific subset of predictors for the specified readout unit.
        /// </summary>
        /// <param name="readoutUnitName">ReadoutUnit name</param>
        /// <param name="predictorsCollection">Collection of available predictors</param>
        public List <double[]> CreateVectorCollection(string readoutUnitName, IEnumerable <double[]> predictorsCollection)
        {
            List <double[]> vectorCollection = new List <double[]>();
            ReadoutUnitMap  rum = null;

            if (_mapCollection.ContainsKey(readoutUnitName))
            {
                rum = _mapCollection[readoutUnitName];
            }
            foreach (double[] predictors in predictorsCollection)
            {
                if (rum == null)
                {
                    vectorCollection.Add(CreateVector(predictors, PredictorGeneralSwitchCollection, _numOfAllowedPredictors));
                }
                else
                {
                    vectorCollection.Add(CreateVector(predictors, rum.Map, rum.VectorLength));
                }
            }
            return(vectorCollection);
        }
示例#4
0
            /// <summary>
            /// Creates input vector collection where each vector containing specific subset of predictors for the ReadoutUnit.
            /// </summary>
            /// <param name="readoutUnitName">ReadoutUnit name</param>
            /// <param name="predictorsCollection">Collection of available predictors</param>
            public List <double[]> CreateVectorCollection(string readoutUnitName, List <double[]> predictorsCollection)
            {
                List <double[]> vectorCollection = new List <double[]>(predictorsCollection.Count);
                ReadoutUnitMap  rum = null;

                if (_mapCollection.ContainsKey(readoutUnitName))
                {
                    rum = _mapCollection[readoutUnitName];
                }
                foreach (double[] predictors in predictorsCollection)
                {
                    if (rum == null)
                    {
                        vectorCollection.Add((double[])predictors.Clone());
                    }
                    else
                    {
                        vectorCollection.Add(CreateVector(predictors, rum.Map, rum.VectorLength));
                    }
                }
                return(vectorCollection);
            }
示例#5
0
            /// <summary>
            /// Adds new mapping for ReadoutUntit
            /// </summary>
            /// <param name="readoutUnitName"></param>
            /// <param name="map">Boolean switches indicating if to use available prdictor for the ReadoutUnit</param>
            public void Add(string readoutUnitName, bool[] map)
            {
                if (map.Length != _numOfPredictors)
                {
                    throw new ArgumentException("Incorrect number of switches in the map", "map");
                }
                if (readoutUnitName.Length == 0)
                {
                    throw new ArgumentException("ReadoutUnit name can not be empty", "readoutUnitName");
                }
                if (_mapCollection.ContainsKey(readoutUnitName))
                {
                    throw new ArgumentException($"Mapping already contains mapping for ReadoutUnit {readoutUnitName}", "readoutUnitName");
                }
                ReadoutUnitMap rum = new ReadoutUnitMap(map);

                if (rum.VectorLength == 0)
                {
                    throw new ArgumentException("Map does not contain mapped predictors", "map");
                }
                _mapCollection.Add(readoutUnitName, rum);
                return;
            }