48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
using System.Text;
|
|
|
|
namespace Parser.Objects
|
|
{
|
|
public class MDoubleMatrix : MObject
|
|
{
|
|
private MDoubleMatrix(double[,] matrix)
|
|
{
|
|
Matrix = matrix;
|
|
RowCount = matrix.GetLength(0);
|
|
ColumnCount = matrix.GetLength(1);
|
|
}
|
|
|
|
public double[,] Matrix { get; }
|
|
|
|
public int RowCount { get; }
|
|
|
|
public int ColumnCount { get; }
|
|
|
|
public ref double this[int i, int j] => ref Matrix[i, j];
|
|
|
|
public ref double this[int i] => ref Matrix[i % RowCount, i / RowCount];
|
|
|
|
public override string ToString()
|
|
{
|
|
var sb = new StringBuilder();
|
|
for (var i = 0; i < RowCount; i++)
|
|
{
|
|
for (var j = 0; j < ColumnCount; j++)
|
|
{
|
|
if (j > 0)
|
|
{
|
|
sb.Append(' ');
|
|
}
|
|
sb.Append(Matrix[i, j]);
|
|
}
|
|
|
|
sb.AppendLine();
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
public static MDoubleMatrix Create(double[,] matrix)
|
|
{
|
|
return new MDoubleMatrix(matrix);
|
|
}
|
|
}
|
|
} |