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]); }
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]; }
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); }
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; }
/// <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); }