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

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

回答 (1 件)

Kojiro Saito
Kojiro Saito 2021 年 12 月 20 日
コードのどこかに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 件のコメント
佳琳 杉浦
佳琳 杉浦 2021 年 12 月 21 日
確認したところ,<MATLABインストールフォルダ>\toolbox\matlab\scribe\legend.m だけが返されました.関数legendは問題なく認識されているようです.デフォルトの一列で表示される凡例はlegendを使って普通に表示されるのですが,複数figureを定義していることなど他に何か原因があるのでしょうか?
Kojiro Saito
Kojiro Saito 2021 年 12 月 21 日
legendは問題なさそうですね。私の環境では再現できないので、どのようなfigureをプロットしてこの現象が起きているのか、サンプルコードを提供いただけますか?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

タグ

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!