2016-07-31 18 views
0

savefig()saveas()関数を使用して、.fig.jpgファイルを保存します。 MATLAB(R2015a、Ubuntu 14.04、パソコン、シングルアカウント)。ただし、生成されるファイルの所有者はrootです。所有者を自分のユーザーアカウントにしたい。ユーザーの所有権を持つMATLABにファイルを保存する

私は末尾にchownを使用して所有権を取得することができますが、これはMATLABから直接、つまりファイルの作成時に発生させたいと考えています。

また、以前この問題は発生していませんでした。私はOSとすべてのソフトウェアを新しくインストールしました。この動作が起こり始めました。

+1

は、アプリケーションを起動したユーザーのファイルアクセス権ではありませんか?したがって、アプリケーションはなぜrootの下で動作していますか?どのようにMatlabを始めるのですか?また、ファイルをどこに保存していますか?ファイルを保存したディレクトリの 'ls -la'を与えることができますか? –

+0

Ubuntu 14.04の下でMATLAB R2015bを実行すると、rootではなく通常のユーザが所有するファイルに対して '-rw-r -r - 'パーミッションを取得します。もちろん、MATLABをrootユーザーで実行しないでください。 –

+0

@GuntherStruyf私はrootとしてアプリケーションを実行していましたが、特に 'sudo matlab'コマンドを使用していました。これが原因です。私はすべてを明確にする答えを書いています。 – user3342981

答えて

0

これは、ユーザがMATLABをどのように起動するのかという問題になると私は以前のユーザに同意します。

この問題を解決するためのすばやく簡単な方法は、systemコマンドを使用することです。あなたはsystemコマンドは/bin/shへのアクセスを与えるよう(多分MATLABが開始された方法に応じて、ルート権限で)このコードを配布することを計画している場合

system('chown user:group DIRTOSAVEDFILE'); 

または

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

systemを使用して再考してください。

0

私が間違っていたことを理解しました。

コマンドsudo matlabを使用してMATLABを実行していたため、ディスクに保存されているファイルの所有権がrootになっています。 MATLABをルートとして実行していたのは、端末にmatlabを単に使用していなかったためです。特に、MATLABはJAVA例外エラー:「デスクトップの起動中にエラーが発生しました。このエラーを解決するために、私は~/.matlab/R2015aというMATLABの設定ディレクトリの所有権を取得しなければなりませんでした。私はsudo chown -R username:username ~/.matlab/R2015a/を所有権を取得しました。今、sudoを使わずにMATLABを実行できるだけでなく、生成されるファイルも私の所有権を持っています。コメントと回答のため

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

ありがとう:私は私の所有権の問題を解決するには次のリンクを使用していました。私は私が推測するより多くの研究をしておくべきだった。

関連する問題