/// <summary> /// Vytvoří matici pomocí vektorů /// </summary> /// <param name="Type">Typ inicializace matice vektory</param> /// <param name="Vectors">Vektory</param> public Matrix(MatrixInitType Type,params Vector[] Vectors) { t = new double[Vectors[0].Count * Vectors.Length]; int ctr = 0; if (Type == MatrixInitType.VectorsAreRows) { cols = Vectors[0].Count; rows = Vectors.Length; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++,ctr++) t[ctr] = Vectors[i][j]; } } else { rows = Vectors[0].Count; cols = Vectors.Length; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++,ctr++) t[ctr] = Vectors[j][i]; } } }
/// <summary> /// Převede vektor na matici o jednom řádku/sloupci /// </summary> /// <returns>Matice</returns> public Matrix ToMatrix(MatrixInitType Type) { if (Type == MatrixInitType.VectorsAreRows) return new Matrix(1, Count, t); else return new Matrix(Count, 1, t); }