Example #1
0
        public static MatrixBase <T> GetRangeOfRows(
            MatrixBase <T> matrix,
            RangeInt rowRange)
        {
            if (!matrix.RowRange.Contains(rowRange))
            {
                throw new ArgumentOutOfRangeException("rowRange");
            }

            var rawResult = new T[rowRange.Length, matrix.ColumnCount];

            for (int row = rowRange.Start; row < rowRange.End; row++)
            {
                for (int col = 0; col < matrix.ColumnCount; col++)
                {
                    rawResult[row - rowRange.Start, col] = matrix.Data[row, col];
                }
            }
            MatrixBase <T> result = new MatrixBase <T>(rawResult);

            return(result);
        }
Example #2
0
        public static MatrixBase <T> GetRangeOfColumns(
            MatrixBase <T> matrix,
            RangeInt columnRange)
        {
            if (!matrix.ColumnRange.Contains(columnRange))
            {
                throw new ArgumentOutOfRangeException("columnRange");
            }

            var rawResult = new T[matrix.RowCount, columnRange.Length];

            for (int row = 0; row < matrix.RowCount; row++)
            {
                for (int col = columnRange.Start; col < columnRange.End; col++)
                {
                    rawResult[row, col - columnRange.Start] = matrix.Data[row, col];
                }
            }
            MatrixBase <T> result = new MatrixBase <T>(rawResult);

            return(result);
        }
Example #3
0
 public bool Contains(RangeInt range)
 {
     return(Start <= range.Start && range.End <= End);
 }