MATLAB Answers

BdS
0

Error on opening a .mat file.

Asked by BdS
on 12 Dec 2018
Latest activity Commented on by Jan
on 12 Dec 2018
Accepted Answer by Jan
I have got a rather big .mat file. When I try to open it an error message pops up: "File might be corrupt."
Here is a more detail discription if I try to import data from this file
Warning: Unable to read some of the variables due to unknown MAT-file error.
> In matfinfo (line 9)
In finfo (line 118)
In uiimport/gatherFilePreviewData (line 412)
In uiimport (line 242)
Error using load
Unknown text on line number 1 of ASCII file Q:\BGFIAV\ZENT...
Ansatz\Code\Iteration 2.2\Unit Tests\Styles\matlab.mat
"MATLAB".
Error in uiimport/runImportdata (line 463)
datastruct = load('-ascii', fileAbsolutePath);
Error in uiimport/gatherFilePreviewData (line 431)
[datastruct, textDelimiter, headerLines]= runImportdata(fileAbsolutePath, type);
Error in uiimport (line 242)
gatherFilePreviewData(fileAbsolutePath);
I there a way of open it?
Thank you in advance for your help.

  0 Comments

Sign in to comment.

2 Answers

Answer by Jan
on 12 Dec 2018
 Accepted Answer

"Unknown text on line number 1 of ASCII file Q:\BGFIAV\ZENT..."
This sounds like it is a MAT file in ASCII format. Please confirm this and specify "big" in numbers. Some users assume that an 100kB file is large already, because it is hard to read by a human. Others works with medium sized files of 32GB, when their machines have 192GB RAM installed.
If the file is in ASCII format, this was a bad choice because the reading is less efficient than with binary files. Maybe a specific routine for reading the ASCII file is better than the general purpose load. Please post a small but relevant part of the file.

  0 Comments

Sign in to comment.


Answer by BdS
on 12 Dec 2018

The file is 644'234 KB big. My computer is not the latest one. How to check if my .mat file is in ASCII format?

  1 Comment

Jan
on 12 Dec 2018
Please post comments in the sections for comments, not as answer.
Open the file in an editor - e.g. Matlab's or Notepad++. The later handles large files more efficiently than e.g. the built-in Editor of Windows. Alternatively open the file in Matlab with fopen and use fread to read the 1st 100 characters. If you can read this, it is ASCII.
If you import a 644 MB text file to Matlab, you need 1.2GB of free RAM, because the characters are stores with 2 bytes. If you want to perform calculations with these data, a concersion to doubles is required at all. So better convert the data during the import already.

Sign in to comment.