你的問題很可能(如評論TroyHaskin),你已經使用legend
作爲代碼中的變量名稱。嘗試將clear legend
直接放在legend(l);
的上方。這可以通過這個簡單的例子
l = {'a', 'b', 'c', 'd'};
A = 1;
A(l)
Error: Function 'subsindex' is not defined for values of class 'cell'.
Matlab的無法弄清楚如何將電池l
轉換爲指數來說明。
的legend
命令可既comma separeted list和cell
作爲與所述不同的標記的輸入。
但是,使用單元格通常會更好,因爲它可以在不發出警告的情況下啓用其他name-value pair input arguments。
警告:忽略額外的圖例條目。
例如,您的標籤l
的列表(前提是legend
isn't覆蓋)
l = {'a', 'b', 'c', 'd'};
你可以簡單地使用這兩種
legend(l) % Cell input
legend(l{:}) % Cell elements fed separately
但如果使用第一,你也可以添加,例如
legend(l, 'FontSize', 8)
Matlab然後理解l
中的標籤被分組在一起,並且'FontSize'
不是標籤。
如果使用
legend(l{:}, 'FontSize', 8);
你會得到一個警告,行中的情節(4)的數量不匹配的傳說輸入的數量(因爲「字號」也被認爲是一個標籤)
因此,如果您的l
列表太短,並且您將其作爲逗號分隔列表提供,那麼您也會遇到麻煩。然後字體大小包含在您的圖例中,請參閱下面的圖片。
data = rand(8, 5); % <-- Added one extra line
l = {'a', 'b', 'c', 'd'};
graph = bar(data);
legend(l{:}, 'FontSize', 8);
注意字號不僅是你可以使用不同的名稱 - 值對參數的一個例子。
我得到錯誤,當我有一個變量'legend',然後嘗試使用該函數。重命名變量,所有應該沒問題。 – TroyHaskin