예제 #1
0
        public void ReplaceRow(int row, Vector vec)
        {
            // Check dimensions:
            if (_mColumns != vec.VectorDimension())
                throw new Exception("wrong dimension");

            for (var i = 0; i < _mColumns; i++)
                SetElement(row, i, vec.Elements[i]);
        }
예제 #2
0
        public void Subtract(Vector v2)
        {
            // Check dimensions
            if (_nElements != v2.VectorDimension())
                throw new Exception("Wrong dimensions");

            for (var i = 0; i < _nElements; i++)
                Elements[i] = Elements[i] - v2.Elements[i];
        }
예제 #3
0
        public static Vector Subtract(Vector v1, Vector v2)
        {
            // Check dimensions:
            if (v1.VectorDimension() != v2.VectorDimension())
                throw new Exception("Wrong dimensions");

            var resultElements = new double[v1.VectorDimension()];

            for (var i = 0; i < v1.VectorDimension(); i++)
                resultElements[i] = v1.Elements[i] - v2.Elements[i];

            return new Vector(resultElements);
        }
예제 #4
0
        public double DotProduct(Vector v2)
        {
            // Check dimensions
            if (_nElements != v2.VectorDimension())
                throw new Exception("Wrong dimension");

            var result = 0.0;

            for (var i = 0; i < _nElements; i++)
                result += Elements[i]*v2.Elements[i];

            return result;
        }
예제 #5
0
        /// <summary>
        /// Scalar product double a * Vector v1
        /// </summary>
        /// <param name="a"></param>
        /// <param name="v1"></param>
        /// <returns></returns>
        public static Vector ScalarProduct(double a, Vector v1)
        {
            var resultElements = new List<double>();

            // Multiply each element of v1 with a
            for (var i = 0; i < v1.VectorDimension(); i++)
                resultElements.Add(a*v1.Elements[i]);

            return new Vector(resultElements);
        }