public static Vector TraceVector(Matrix A) { if (!A.IsSquare) throw new Exception(string.Format("Cannot trace a non-square matrix : {0} x {1}", A.RowCount, A.ColumnCount)); Vector B = new Vector(A.RowCount); for (int i = 0; i < A.RowCount; i++) B[i] = A[i, i]; return B; }
public virtual Vector RowVector(int ColumnIndex) { Vector v = new Vector(this.RowCount); for (int i = 0; i < this.RowCount; i++) v[i] = this[i, ColumnIndex]; return v; }
public virtual Vector ColumnVector(int RowIndex) { Vector v = new Vector(this.ColumnCount); for (int i = 0; i < this.ColumnCount; i++) v[i] = this[RowIndex, i]; return v; }
public Vector(Vector Vector) :base(Vector) { }