If I have a known *.mat file format but a corrupted *.mat with multiple errors, is there a simple way to recover the corrupted file?

2 views (last 30 days)
Greetings,
I have a long-term data collection process going on, taking data every ~30 seconds. I've got numerous good files with the exact same variable (a simple matrix, 46 rows, by time-determined columns), all in double. However, one of them got corrupted due to a java heap overflow during one particular run of the test. None of the easily searchable corrupt-mat-file recovery tools was able to recover it, and when I use MATCAT, it shows multiple errors in the file:
>> matcat('B9.mat')
MAT-File Corruption Analysis Tool (MATCAT) version 2, February 2005
file 'B9.mat' opened successfully
numeric data in this MAT-File does not need to be endian-swapped when read on this computer
MAT-File header:
[MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Fri Aug 04 00:59:08 2017 ]
this MAT-File does not have subsystem data (not all MAT-Files have this)
128 byte v5 MAT-File header ok
variable 1 TAG: datatype_0 (UNKNOWN-OR-ERROR), data bytes: 0
error - incorrect data type, file appears corrupted
error - incorrect number of data bytes
MAT-File integrity check FAILED for (B9.mat), 1 variable(s) found
ans =
0
Is there a way of using the known file structure, and perhaps taking guesses at the true length of the data included in the file to recover the data? Or, are there other *.mat recovery tools that might be more successful? I've tried MATZEROFIX, and splitmat, neither was able to do anything. Thanks in advance.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!