public Vector.Vector MultiplyByVector(Vector.Vector vector) { if (vector.GetSize() != GetColumnsNumber()) { throw new ArgumentException("Матрица и вектор не согласованы", nameof(vector)); } var wSize = vector.GetSize(); var hSize = _rows.Length; var resultComponents = new double[hSize]; for (var i = 0; i < hSize; i++) { for (var j = 0; j < wSize; j++) { resultComponents[i] += _rows[i][j] * vector[j]; } } return(new Vector.Vector(resultComponents)); }
public Vec MultiplyByVector(Vec vector) { if (GetСolumnsCount() != vector.GetSize()) { throw new ArgumentException("Количество столбцов матрицы должно быть равно длинне вектора "); } Vec vectorResult = new Vec(vector.GetSize()); for (int i = 0; i < vector.GetSize(); i++) { double sum = 0; for (int j = 0; j < Rows.Length; j++) { sum += Rows[i].GetComponent(j) * vector.GetComponent(j); } vectorResult.SetComponent(i, sum); } return(vectorResult); }
public void SetRow(int index, Vec vector) { if (vector.GetSize() != GetСolumnsCount()) { throw new ArgumentOutOfRangeException("размер вектора должен быть " + Rows[index].GetSize(), nameof(vector)); } if (index < 0 || index > Rows.Length) { throw new IndexOutOfRangeException("index должен быть от 0 до " + Rows.Length); } Rows[index] = new Vec(vector); }
public void SetRow(Vector.Vector vector, int index) { if (index < 0 || index >= GetRowsNumber()) { throw new IndexOutOfRangeException("Индекс выходит за пределы размерности матрицы"); } if (vector.GetSize() > GetColumnsNumber()) { throw new ArgumentException("Размерность вектора превышает ширину матрицы", nameof(vector)); } var resultVector = new Vector.Vector(GetColumnsNumber(), vector.GetComponents()); _rows[index] = resultVector; }
public void SetColumn(Vector.Vector vector, int index) { if (index < 0 || index >= GetColumnsNumber()) { throw new IndexOutOfRangeException("Индекс выходит за пределы размерности матрицы"); } if (vector.GetSize() > GetRowsNumber()) { throw new ArgumentException("Размерность вектора превышает высоту матрицы", nameof(vector)); } for (var i = 0; i < _rows.Length; i++) { _rows[i][index] = vector[i]; } }