2016-07-31 36 views
0

我正在使用savefig()saveas()函數來保存.fig.jpg文件或分辨率。在MATLAB(R2015a,Ubuntu 14.04,個人電腦,單帳戶)。但是,正在生成的文件的所有者是root。我希望所有者成爲我的用戶帳戶。用MATLAB保存帶有用戶所有權的文件

我可以在終端中使用chown以後獲得所有權,但我希望直接從MATLAB發生,即在文件創建時。

此外,這個問題以前沒有發生過。我剛剛安裝了操作系統和所有軟件,並且這種行爲開始發生。

+1

是不是導致文件權限啓動該應用程序的用戶的權限?那麼爲什麼應用程序在根目錄下運行?你如何啓動Matlab?另外:你在哪裏保存文件?你可以給你保存文件的目錄的'ls -la'嗎? –

+0

在Ubuntu 14.04下運行MATLAB R2015b,我獲得了文件的'-rw -r -r-'權限,屬於普通用戶,而不是root。當然,不要在root用戶下運行MATLAB。 –

+0

@GuntherStruyf我以root身份運行應用程序,特別是我使用命令'sudo matlab',這就是發生這種情況的原因。我正在寫答案來澄清一切。 – user3342981

回答

0

我同意以前的用戶,這更可能是用戶啓動MATLAB開始的問題。

解決此問題的一種快速且骯髒的方法是使用system命令。

system('chown user:group DIRTOSAVEDFILE'); 

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

,如果你打算爲system命令可以訪問到/bin/sh分發此代碼(也許甚至取決於MATLAB是如何開始root權限),請使用重新system

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

感謝您的意見和解答。我想我應該做更多的研究。

相關問題