Cannot open a structure file in Matlab
Mostra commenti meno recenti
Hello,
I'm operating Matlab2018a on a Windows 10 machine. I can create structure files, but cannot open them. I get this warning/error:
Warning: Unexpected end-of-file while reading compressed data
Error using load
Cannot read file Y:\....filneame.mat
The drive that I'm saving and opening from is a network drive. I have read/write permissions on this drive and can read other non-structure files with no issues.
Is there a solution for this?
Thanks.
11 Commenti
Walter Roberson
il 25 Giu 2020
If you write the same data to a local hard drive, do you have the same problem?
Shannon
il 26 Giu 2020
Walter Roberson
il 26 Giu 2020
What kind of network drive is it? For example is it a Windows "net map" of Microsoft OneDrive to a drive letter? Is it NTFS? SMB ?
Shannon
il 26 Giu 2020
Shannon
il 26 Giu 2020
Walter Roberson
il 26 Giu 2020
I made a mistake in asking about NTFS, in that NTFS is not a network filesystem. I meant to ask about NFS; https://en.wikipedia.org/wiki/Network_File_System#NFSv3
Unfortunately I seem to have lost track of which technology is being commonly used for sharing files in Windows networks these days.
Fangjun Jiang
il 26 Giu 2020
My experience is that I need to go to Windows Explorer to make sure the Y: drive is connected first.
Shannon
il 26 Giu 2020
Walter Roberson
il 26 Giu 2020
I find hints that the configuration of the smb server and related technologies can affect reliability, but there are a lot of different ways to configure to meet different goals and network configurations, and my decade old peripheral experience does not leave me qualified to advise on current systems.
I don't expect that the problem lies in MATLAB... but MATLAB might be using the network in ways that are not typical for other network work in your organization.
One thing that MATLAB is known to struggle with is differences in time stamp between server and client, as it examines file update times as part of path management. That would tend to affect source files more than mat files.
There was a problem a few releases ago having to do with cache synchronization between OneDrive and MATLAB. It might be worth looking up the details to see if there could be a similar issue in your configuration.
Shannon
il 26 Giu 2020
Risposte (1)
Monisha Nalluru
il 10 Lug 2020
The reason for this error might be due to MAT file corruption in the network drive.
Another indication of the MAT file being corrupt are error messages related to ‘HDF5’ appearing in MATLAB Command Window/Linux or MacOS Terminal/Windows Command prompt.
You can try to recover the non-corrupt portions or individual variables in the mat file using matfilecommand.
Consider for example that 'test.mat' has a variable 'v' that is unreadable. You can first get the size of this variable using the 'size' function as follows:
m=matfile('test.mat');
size(m,v) ans= 6 100
This tells us that the variable 'v' in 'test.mat' is a 2-D array which has 6 rows and 100 columns (a total of 600 values). You can then try to read the 'non-corrupt' values in 'v' and store them in a new array 'vRec' as follows :
vRec = zeros(6,100); % pre-allocate for efficiency
for i=1:6
for j=1:100
try
vRec(i,j) = m.v(i,j); % store the value if it is not corrupt;
catch
vRec(i,j) = NaN; % if the value is corrupt/unreadable store 'NaN;
disp([int2str(i) ',' int2str(j) ' is unreadable.']); % display the indices of the unreadable elements
end
end
end
The above code will try to read all the 'non-corrupt' values in 'v' and store them in 'vRec'. The corrupt values in 'v' will be stored as 'NaNs'
4 Commenti
Walter Roberson
il 13 Lug 2020
Writeable would be 0 for all -v7 .mat files; it can only be true for -v7.3 .mat files.
Shannon
il 13 Lug 2020
Monisha Nalluru
il 15 Lug 2020
Hi Shannon,
Can you check by saving the files in these version and check the load command, as I am not able to reproduce the error at my end.
Categorie
Scopri di più su Cloud File Storage in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!