LoginSignup
46
41

More than 1 year has passed since last update.

【MATLAB】何が起こっているか分からないが致命的っぽいエラーの処置方法

Last updated at Posted at 2019-09-08

何かがおかしい・・そんな時には

  • 意味の分からないエラーが・・
  • プロット表示がなんか変 or 表示されない・・
  • 根本原因はどうでもいいから何とかしてくれ。もう再インストールしてやる!

エラー文もよくわからんし、どう考えても自分の書いた部分が原因じゃないだろう・・。
MATLAB 使っていると、たまに? こんなことありますよね。

そんな時、怒りに任せて再インストールをしちゃう前に気軽に試せる2つの関数とその背景を紹介します。

  1. パス初期化:restoredefaultpath
  2. 設定ファイル初期化:prefdir
restoredefaultpath % パスの初期化
savepath % 初期化されたパス設定を保存
prefdir % で表示されるフォルダの削除(バックアップは適宜)

これだけ!

特に「設定ファイル」は再インストールだけでは初期化されない場合があるので、
再インストールが無駄に終わることもあり要注意です。

参考:MATLAB 環境を初期化するにはどうすればよいですか?

もちろんこの2つですべての問題が解決するわけではないのですが、
どうしようもないときに試せるもの、という感じでどうぞ。
それぞれ紹介していきます。

パス初期化:restoredefaultpath

restoredefaultpath % パスの初期化
savepath % 初期化されたパス設定を保存

なにが原因かはさておき、MATLAB インストール直後にパスの設定が問題を引き起こすケースはよく聞きます。あとはうっかりパスをいじってしまったときなどですね。
そんな時は「えい!」っと restoredefaultpath でパス設定を初期化して、問題が解決されるかを確認しましょう。解決したようであれば savepath で初期化したパス設定を保存します。

restoredefaultpath の実行だけだと、パス初期化は一時的なものなので、MATLAB を再起動すると元の状態に戻りますので、気軽に試してくれて大丈夫。

パス初期化で解決する問題ってどんなもの?

いろいろですが、とりあえず自分で書いたコードが原因じゃなさそうな雰囲気は共通しています。
以下にエラー例を MATLAB Answers から引用します。

いろいろですね。
他にもこんな問題がパスの初期化で解決したよ!というものがあればコメントください。

設定ファイル初期化:prefdir

MATLABの再インストールでさえも解決できない?
そんな恐ろしい現象の背景にあるのがこちら prefdir です。

>> prefdir
ans =
    'C:\Users\eigs\AppData\Roaming\MathWorks\MATLAB\R2019a'

と大体こんなところに MATLAB のバージョン別に保存されているのが、各種設定ファイル。
コマンド履歴やショートカット・レイアウト・言語設定などが保存されています。

うっかり設定しちゃったことが原因でおかしくなった、ただ何かは覚えていない。いや、俺は何もしていない(大体やってます・・)、そんな状態のときには、このフォルダをごそっと消してしまって、MATLAB を再起動すればOKです。再起動すると設定ファイルが再生成されます。

慎重な方はフォルダ名を変更(例: R2019a_bk)してバックアップを取っておいてもいいですね。あとで R2019a に戻せば元通り。

**アンインストールで削除されてなかった場合は、インストールし直した MATLAB が再びこのフォルダを参照するため、元の問題が再現されてしまいます。**怖いですね。

もちろん、他の PC で同じ設定を再現したい、そんな時にはこのフォルダの中身をコピーすればOKですね。

参考:How do I save my editor preferences when I copy MATLAB to a new machine?

設定ファイルの初期化で解決する問題ってどんなもの?

こちらも多岐にわたります。パッと思い出せるものだと

  • Live Editor 上にプロットが表示されなくなる
  • アプリが起動しない
  • 起動に時間が掛かり、かつ、Javaエラーが発生

などなど。
もはやユーザーがいじれる設定なんて関係なさそう・・というところがミソですね。

まとめ

何かがおかしい・・そんな時にまず試す価値がある2つのコマンドを紹介しました。
直接の原因は有耶無耶になりますが、わけのわからないエラーにイライラする前に是非。

restoredefaultpath % パスの初期化
savepath % 初期化されたパス設定を保存
prefdir % で表示されるフォルダの削除(バックアップは適宜)
46
41
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
41