Help us understand the problem. What is going on with this article?

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

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

  • 意味の分からないエラーが・・
  • プロット表示がなんか変 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 % で表示されるフォルダの削除(バックアップは適宜)
eigs
MATLAB の中の人. 公式ブログも書いています. All comments and opinions expressed are mine alone and do not necessarily reflect those of my employers, past or present.
https://blogs.mathworks.com/japan-community/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした