MATLAB Answers

Ingrid
0

repeated -append sometimes fails with permission denied

Asked by Ingrid
on 19 Feb 2016
Latest activity Commented on by Greg Allen on 4 Apr 2016
in my code I have to save data repeatedly to the same mat.file so I am using the -append command. This works fine, however, sometimes I get a permission denied error saying that it cannot save. This seems to occur randomly (i.e. I have no idea when it will happen or after how many times). What can be causing this? I am only running one matlab instance and one function so the file should not be open anymore as the next line of code is only executed when the previous save is finished, no?

  1 Comment

If you are on OS X or Linux, you should check the file permissions. Check the file permissions on the directory, also. Another application may be changing the file permissions, so try saving in a different place with a different name.

Sign in to comment.

Tags

1 Answer

Answer by Fangjun Jiang on 19 Feb 2016

Use rehash after saving the file might solve this issue. From the help text of rehash:
The only time one should need to use this form is when writing out files programmatically and expecting MATLAB to find them before reaching the next MATLAB prompt.

  3 Comments

The operations done by that form of rehash() have to do with detecting changes to code; there should not be any effect on .mat files. If the rehash happens to work, it would be more likely a case of some asynchronous operation not having finished yet and a pause() would be a more appropriate fix for that possibility.
thanks Walter, I also did not think the problem would be solved by this. I did however find the problem. I noticed it only happens when by accident I have the selection of the current folder to the mat file that I am currently trying to write to. Showing the details of this file in the matlab window apparently has as a consequence that the file is "busy" although I am not trying to open it so now I am paying attention not always just have a folder or something like that selected when running my code

Sign in to comment.