凡例の複数行化エラー:cell 型の値をインデックスとして使用できません。

7 views (last 30 days)
佳琳 杉浦
佳琳 杉浦 on 20 Dec 2021
Commented: Kojiro Saito on 21 Dec 2021
scatter関数を使いfigureを作成したところ,凡例が多かったので複数列化を試みました.
legend({'Cutting Depth = 5 [mm]','...','Cutting Depth = 50 [mm]'},'FontSize',10,'Interpreter','latex','Location','northeast','NumColumns',2)
すると,「cell型の値をインデックスとして使用できません」というエラーが出てきてしまい,figureには凡例が表示されず困っています.
ここのとおりに書いたつもりなのですが,上手くいかない原因が分かれば教えて下さい.

Answers (1)

Kojiro Saito
Kojiro Saito on 20 Dec 2021
コードのどこかにlegendという変数を定義していたり、legend.mというカスタムの関数を書いたりしていませんでしょうか?
which legend -all
を実行してみて、<MATLABインストールフォルダ>\toolbox\matlab\scribe\legend.m だけがリターンされれば問題ないのですが、「legend is a variable.」と表示されたり、別のフォルダにあるlegend.mが表示されたりすると、凡例を付ける関数legendが正しく認識されません。
もしlegendという変数を定義していたら
clear legend
で変数legendをクリアして、違う変数名で定義したり、
カスタムのlegend.mがある場合は別名(例:mylegend.m)のファイル名にしたりすることで解決できると思います。
  2 Comments
Kojiro Saito
Kojiro Saito on 21 Dec 2021
legendは問題なさそうですね。私の環境では再現できないので、どのようなfigureをプロットしてこの現象が起きているのか、サンプルコードを提供いただけますか?

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!