diff --git a/MatFileHandler.Tests/MatFileReaderTests.cs b/MatFileHandler.Tests/MatFileReaderTests.cs
index 9000225..e300ec7 100755
--- a/MatFileHandler.Tests/MatFileReaderTests.cs
+++ b/MatFileHandler.Tests/MatFileReaderTests.cs
@@ -326,6 +326,9 @@ namespace MatFileHandler.Tests
Assert.That(obj[2]["x"].ConvertToDoubleArray(), Is.EqualTo(new[] { -2.0 }));
}
+ ///
+ /// Test reading a table.
+ ///
[Test]
public void TestTable()
{
diff --git a/MatFileHandler/TableAdapter.cs b/MatFileHandler/TableAdapter.cs
index 0901f66..f6aa641 100644
--- a/MatFileHandler/TableAdapter.cs
+++ b/MatFileHandler/TableAdapter.cs
@@ -1,12 +1,21 @@
-using System;
+// Copyright 2017-2018 Alexander Luzgarev
+
+using System;
using System.Linq;
namespace MatFileHandler
{
+ ///
+ /// A better interface for using table objects.
+ ///
public class TableAdapter
{
private readonly IMatObject matObject;
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Source table object.
public TableAdapter(IArray array)
{
matObject = array as IMatObject;
@@ -14,6 +23,7 @@ namespace MatFileHandler
{
throw new ArgumentException("The object provided is not a table.");
}
+
var cellArray = matObject["varnames"] as ICellArray;
VariableNames = Enumerable
.Range(0, cellArray.Count)
@@ -22,7 +32,7 @@ namespace MatFileHandler
NumberOfVariables = VariableNames.Length;
var props = matObject["props"] as IStructureArray;
Description = (props["Description"] as ICharArray).String;
- NumberOfRows = (int) matObject["nrows"].ConvertToDoubleArray()[0];
+ NumberOfRows = (int)matObject["nrows"].ConvertToDoubleArray()[0];
var rowNamesArrays = matObject["rownames"] as ICellArray;
RowNames = Enumerable
.Range(0, rowNamesArrays.Count)
@@ -30,14 +40,36 @@ namespace MatFileHandler
.ToArray();
}
+ ///
+ /// Gets table description.
+ ///
+ public string Description { get; }
+
+ ///
+ /// Gets the number of rows in the table.
+ ///
public int NumberOfRows { get; }
- public string[] RowNames { get; }
-
+ ///
+ /// Gets the number of variables in the table.
+ ///
public int NumberOfVariables { get; }
+ ///
+ /// Gets row names.
+ ///
+ public string[] RowNames { get; }
+
+ ///
+ /// Gets variable names.
+ ///
public string[] VariableNames { get; }
+ ///
+ /// Gets all the data for a given variable
+ ///
+ /// Variable name.
+ /// All data associated with the variable.
public IArray this[string variableName]
{
get
@@ -50,11 +82,10 @@ namespace MatFileHandler
{
throw new IndexOutOfRangeException($"Variable '{variableName}' not found.");
}
+
var data = matObject["data"] as ICellArray;
return data[index];
}
}
-
- public string Description { get; }
}
-}
+}
\ No newline at end of file