2015-01-20 42 views
0

什麼是錯的,我不能在我的YTickLabel搞清楚:設置YTickLabel MATLAB

h2=bar(myData); 
ylabels=['1';'1.5';'2';'2.5';'3']; 
set(gca,'XTickLabel',applicationNames),'XTick',applicationNames),'YTickLabel',ylabel)); 

PS:我曾經嘗試這樣做也沒有成功:

ax=gca 
ax.YTickLabel=['1';'1.5';'2';'2.5';'3']; 

我得到這個錯誤:

Error using vertcat 
Dimensions of matrices being concatenated are not consistent. 

回答

1

您正在嘗試創建一個字符數組。在這種情況下,您嘗試創建一個2D矩陣,其中列的數量應該具有相同的字符數,行數表示您擁有多少個標籤。對於您的字符串,每列的最大字符數爲三(數字/點/數字)。由於您只有長度爲1的字符(即只是一個數字),因此您將得到不一致的串聯錯誤,因爲它預期所有字符在數組中都是長度爲3。

實際上您需要使用的是單元格陣列,以適應每個y刻度標籤的不規則大小。因此:

ax.YTickLabel={'1';'1.5';'2';'2.5';'3'}; 

或者,因爲你的標籤是數字,你可以簡單地使用數字數組來代替:

ax.YTickLabel = [1;1.5;2;2.5;3]; 

,如果你想標記x字符的單元陣列使用和/或y軸是除了數字之外的東西。可以使用文本標註y軸,例如:

ax.YTickLabel = {'John'; 'Paul'; 'George'; 'Ringo'; 'The Beatles'}; 
+0

感謝您的答案@rayryeng,我也嘗試過。在這種情況下,我沒有收到任何錯誤,(看到這個):'ax = YTickLabel:[1 1.5000 2 20.5000]'但在實際情節我看不到變化 – Amir 2015-01-20 19:41:25

+0

@Amir - 並看看會發生什麼。此外,分享你的數據,所以我們可以重現你的情節將有助於我們不建議你已經嘗試過的東西 – rayryeng 2015-01-20 19:45:08

+0

其實我這樣做的原因有點'adjustbarbase',我試過一個插件'.m'文件但didn沒有工作。整個問題是我想重新命名我的'YTickLabel'所有'+ 1'。順便說一句,'軸緊',公正地收緊YTick,因爲我正在觀察它 – Amir 2015-01-20 19:48:56