我正在使用savefig()
和saveas()
函数来保存.fig
和.jpg
个文件。在MATLAB(R2015a,Ubuntu 14.04,个人电脑,单一账户)。但是,生成的文件的所有者是root。我希望所有者成为我的用户帐户。
我可以在终端中使用chown
以便稍后获得所有权,但我希望这可以直接从MATLAB发生,即在文件创建时。
此外,此问题以前没有发生过。我刚刚完成了操作系统和所有软件的全新安装,这种行为开始发生。
答案 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,并且生成的文件也拥有我的所有权。我使用以下链接来解决我的所有权问题:
感谢您的评论和答案。我想我应该做更多的研究。