0

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

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

而且,这个问题以前没有发生过。我刚刚重新安装了操作系统和所有软件,这种行为开始发生。

4

2 回答 2

0

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

我正在使用 command 运行 MATLAB sudo 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

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

于 2016-08-01T13:18:17.280 回答
0

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

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

system('chown user:group DIRTOSAVEDFILE');

或者

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

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

于 2016-08-01T07:27:40.627 回答