Exemple #1
0
        public Vector MultiplyByVector(Vector vector)
        {
            if (vector.GetSize() != GetColumnsCount())
            {
                throw new ArgumentException("Умножение невозможно, размерность вектора не равна количеству столбцов матрицы, сейчас равна: "
                                            + vector.GetSize() + ", а количество столбцов матрицы равно: " + GetColumnsCount(), nameof(vector));
            }

            Vector result = new Vector(GetRowsCount());

            for (int i = 0; i < GetRowsCount(); i++)
            {
                result.SetElement(i, Vector.GetScalarMultiplication(rows[i], vector));
            }

            return(result);
        }
Exemple #2
0
        public Vector GetColumn(int index)
        {
            if (index < 0 || index >= GetColumnsCount())
            {
                throw new IndexOutOfRangeException("Индекс столбца вне размеров матрицы, должен быть в пределах: [0, "
                                                   + (GetColumnsCount() - 1) + "], сейчас он равен: " + index);
            }

            Vector columnVector = new Vector(GetRowsCount());

            for (int i = 0; i < GetRowsCount(); i++)
            {
                columnVector.SetElement(i, rows[i].GetElement(index));
            }

            return(columnVector);
        }