Save .mat "Unable to write file"
Mostrar comentarios más antiguos
I'm trying to write some worskpace variables with the command:
save('Z:\dir1\dir2\filename.mat','var1','var2','var3','var4','var5');
Where Z: is a windows (SMB) network drive. I get the following error when I try the command:
Error using save
Unable to write file
'Z:\dir1\dir2\filename.mat'
I have written many .mat files before in Z: without issues. In particular 'var1' is a relatively big variable, a 2605056x91 single array. When leaving out 'var1' the writing works, and trying to write only 'var1' also fails, so it seems to be a problem related only with 'var1'. I have write permissions since writing to the same location works with smaller size variables.
I also have tried writing the same variables (including 'var1'), with the same file name, to a different (SMB) network drive and the save works correcly. So the problem is only in the Z: drive, with 'var1'. Have anyone had a similar problem, or have any idea what could be the problem?
BTW, I also tried 'fwrite' of a large size binary file (larger size than the correctly saved '.mat' in the other network drive) to the same location in Z:, and it works correcly.
If it helps, the output of the try catch "getReport" when the save throws the error message is:
Error using <a href="matlab:matlab.lang.internal.introspective.errorDocCallback('save')"
style="font-weight:bold">save</a>Unable to write file'Z:\dir1\dir2\filename.mat'.
And the MException identifier is
"MATLAB:save:cantWriteFile"
Thank you.
Respuestas (1)
Matthew Moschella
el 8 de Dic. de 2025
0 votos
For the scenario when you attempt to save 'var1', have you tried changing the 'version' flag of the save function to '-v7.3'?
In your case: save('Z:\dir1\dir2\filename.mat','var1','var2','var3','var4','var5','v7.3');
4 comentarios
Walter Roberson
el 8 de Dic. de 2025
Small correction: it would be
save('Z:\dir1\dir2\filename.mat','var1','var2','var3','var4','var5','-v7.3');
Using -v7.3 is certainly what I would try in this situation. That said,
2605056*91*8 is less than 2^31 so the variable should fit in a -v7 file even if the variable is double precision instead of single precision. (It is not immediately clear what "single array" means in this context.)
Alan Miranda
el 9 de Dic. de 2025
Walter Roberson
el 9 de Dic. de 2025
Is it possible that you are running out of disk space on z: ?
Alan Miranda
el 9 de Dic. de 2025
Categorías
Más información sobre Functions en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!