使用用户所有权在MATLAB中保存文件

时间:2016-07-31 17:06:53

标签: matlab save file-ownership

我正在使用savefig()saveas()函数来保存.fig.jpg个文件。在MATLAB(R2015a,Ubuntu 14.04,个人电脑,单一账户)。但是,生成的文件的所有者是root。我希望所有者成为我的用户帐户。

我可以在终端中使用chown以便稍后获得所有权,但我希望这可以直接从MATLAB发生,即在文件创建时。

此外,此问题以前没有发生过。我刚刚完成了操作系统和所有软件的全新安装,这种行为开始发生。

2 个答案:

答案 0 :(得分:0)

我同意以前的用户,这更可能是用户启动MATLAB的问题。

解决此问题的快速而肮脏的方法是使用system命令。

system('chown user:group DIRTOSAVEDFILE');

system(sprintf('chown %s:%s %s',USERSTRING, GROUPSTRING, SAVEDFILEDIR));

如果您计划分发此代码,请重新考虑使用system,因为system命令可以访问/bin/sh(甚至可能具有root权限,具体取决于MATLAB的启动方式)。< / p>

答案 1 :(得分:0)

我已经弄清楚我做错了什么。

我使用命令sudo matlab运行MATLAB,这就是保存到磁盘的文件拥有root权限的原因。我之所以以root身份运行MATLAB,是因为在终端中简单地使用matlab并不适合我。特别是,MATLAB给出了JAVA异常错误:“启动桌面时出错”。要解决该错误,我必须获得MATLAB首选项目录的所有权,即~/.matlab/R2015a。我sudo chown -R username:username ~/.matlab/R2015a/获得了所有权。现在,我可以在没有sudo的情况下运行MATLAB,并且生成的文件也拥有我的所有权。我使用以下链接来解决我的所有权问题:

http://in.mathworks.com/matlabcentral/answers/50971-matlab-r2012b-java-exception-error-starting-desktop

感谢您的评论和答案。我想我应该做更多的研究。