diff --git a/MatFileHandler.Tests/MatFileReaderTests.cs b/MatFileHandler.Tests/MatFileReaderTests.cs
index a06ad71..44e1e21 100755
--- a/MatFileHandler.Tests/MatFileReaderTests.cs
+++ b/MatFileHandler.Tests/MatFileReaderTests.cs
@@ -390,6 +390,31 @@ namespace MatFileHandler.Tests
Assert.Equal(new[] { 1.0, 3.0, 5.0, 2.0, 4.0, 6.0 }, variable2.ConvertToDoubleArray());
}
+ ///
+ /// Test reading a table with strings
+ ///
+ [Fact]
+ public void TestTableWithStrings()
+ {
+ var matFile = GetTests("good")["table-with-strings"];
+ var obj = matFile["t"].Value as IMatObject;
+ var table = new TableAdapter(obj);
+ Assert.Equal(5, table.NumberOfRows);
+ Assert.Equal(2, table.NumberOfVariables);
+ Assert.Equal(new[] { "Numbers", "Names" }, table.VariableNames);
+ var variable = table["Names"] as ICellArray;
+ var name0 = new StringAdapter(variable[0]);
+ Assert.Equal("One", name0[0]);
+ var name1 = new StringAdapter(variable[1]);
+ Assert.Equal("Two", name1[0]);
+ var name2 = new StringAdapter(variable[2]);
+ Assert.Equal("Three", name2[0]);
+ var name3 = new StringAdapter(variable[3]);
+ Assert.Equal("Four", name3[0]);
+ var name4 = new StringAdapter(variable[4]);
+ Assert.Equal("Five", name4[0]);
+ }
+
///
/// Test subobjects within objects.
///
diff --git a/MatFileHandler.Tests/test-data/good/table-with-strings.mat b/MatFileHandler.Tests/test-data/good/table-with-strings.mat
new file mode 100644
index 0000000..eb71b0a
Binary files /dev/null and b/MatFileHandler.Tests/test-data/good/table-with-strings.mat differ
diff --git a/MatFileHandler/MatFileHandler.csproj b/MatFileHandler/MatFileHandler.csproj
index 903b54f..0a43df5 100755
--- a/MatFileHandler/MatFileHandler.csproj
+++ b/MatFileHandler/MatFileHandler.csproj
@@ -1,7 +1,7 @@
netstandard2.0;net461;net472
- 1.4.0-beta3
+ 1.4.0-beta4
MatFileHandler
A library for reading and writing MATLAB .mat files.
Alexander Luzgarev
diff --git a/MatFileHandler/SubsystemDataReader.cs b/MatFileHandler/SubsystemDataReader.cs
index b6141d8..aca0bcd 100644
--- a/MatFileHandler/SubsystemDataReader.cs
+++ b/MatFileHandler/SubsystemDataReader.cs
@@ -334,6 +334,16 @@ namespace MatFileHandler
}
}
+ if (array is MatCellArray cellArray)
+ {
+ for (var i = 0; i < cellArray.Data.Length; i++)
+ {
+ var cell = cellArray.Data[i];
+ var transformedCell = TransformOpaqueData(cell, subsystemData);
+ cellArray.Data[i] = transformedCell;
+ }
+ }
+
return array;
}