Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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");
            }
        }