private void DoSave() { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = "MAT File|*.mat|CSV File|*.csv"; saveFile.Title = "Save As"; var result = saveFile.ShowDialog(); if (result != DialogResult.OK || saveFile.FileName == "") { return; } if (File.Exists(saveFile.FileName)) { File.Delete(saveFile.FileName); } switch (saveFile.FilterIndex) { case 1: // MAT file; just move temporary MAT file. if (DataFile != null && !DataFile.Closed) { DataFile.Close(); } try { File.Copy(DataFile.FileName, saveFile.FileName); } catch (IOException ex) { MessageBox.Show(ex.Message); } break; case 2: // CSV file; copy data to CSV file. if (DataFile != null) { if (DataFile.Closed) { DataFile.Reopen(); } if (!RawData.Closed) { int[,] Matrix = new int[RawData.Dims[0], RawData.Dims[1]]; RawData.Read(Matrix, new long[] { 0, 0 }, RawData.Dims); Matrix = Data.Transpose(Matrix); FileIO.WriteMatrix(saveFile.FileName, Matrix); } DataFile.Close(); } break; } }
public void TestMatFile() { File = new MatFile("C:\\Users\\da\\Documents\\Visual Studio 2012\\Projects\\LUI\\Lui Unit Tests\\test.mat"); MatVar <double> dblmat = File.CreateVariable <double>("dblmat", 6, 10); double[] data10 = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 }; double[] data6 = { 20, 21, 22, 23, 24, 25 }; dblmat.WriteNext(data6, 1); // First column. dblmat.Cursor[0] = 2; dblmat.WriteNext(data10, 0); // Third row. double[] data2 = { 2, 4, 6, 8 }; dblmat.Write(data2, new long[] { 4, 8 }, new long[] { 2, 2 }); // Bottom right corner. MatVar <int> intarr3d = File.CreateVariable <int>("intarr3d", 5, 5, 5); int[] intdata = Data.Uniform(25, 20); intarr3d.WriteNext(intdata, 2); // First 2D slice. double[] readbuf = new double[data10.Length]; int i = 0; try { dblmat.Read(readbuf, new long[] { 2, 0 }, new long[] { 1, readbuf.Length }); for (i = 0; i < readbuf.Length; i++) { Assert.AreEqual(data10[i], readbuf[i]); } } catch (AssertFailedException) { Assert.Fail("Read incorrect data from matrix at (" + 2 + "," + i + ")"); } catch (Exception) { Assert.Fail("Trouble reading HDF5 file"); } }