2016-10-24 30 views
2

我已經使用矩陣A創建了牙買加的這張地圖。我想在城市的特定索引上在此圖像上插入文本標籤。例如kingston在這張地圖上的點是15, 38,其中15row38column,這一點我會標記爲「金士頓」。我的矩陣在下面,從imagesc生成的圖像也在下面。我在玩get(gca, 'position'),但那不成功。圖像中特定單元格(索引)的標籤c

% Cities 
kingston = [15 38]; 
montegoBay = [4 15]; 
portRoyal = [18 31]; 
stThomas = [10 55]; 
mandeville = [13 21]; 
ochoRios = [2 29]; 

A = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 3 3 0 0 0 0 3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 0 0 0 0 3 0 3 3 3 0 0 0 0 3 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 3 3 3 0 3 0 3 3 3 3 0 3 0 3 0 3 3 3 0 3 3 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 3 3 3 0 0 0 3 3 3 3 3 3 0 3 0 3 0 0 0 0 0 0 3 0 0 0 3 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 0 0 3 3 0 0 0 3 3 3 3 3 0 3 3 3 3 0 0 0 0 0 0 0 0 0 3 0 0 0 3 3 3 0 3 3 3 3 0 0 3 0 0 1 1 1 1 1 1 1 1 1 1; 
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 3 3 3 0 0 3 3 0 3 0 0 0 0 3 3 3 3 0 0 0 0 0 0 0 0 1 1 1 1 1 1; 
1 0 3 0 3 3 0 0 0 3 3 3 0 3 0 3 3 3 3 3 0 3 3 3 0 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 0 0 0 0 1; 
1 0 0 0 0 0 3 0 0 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 0 0 3 3 3 3 3 0 3 0 3 3 0 0 3 3 3 0 0 3 0 0 3 0 3 3 0 3 0 3 0 1; 
1 1 1 0 0 0 0 0 0 3 3 3 3 0 0 3 3 3 3 3 3 3 3 0 3 3 3 0 0 0 3 3 3 3 0 3 3 0 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; 
1 1 1 1 1 1 1 1 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 1 0 0 0 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 3 3 0 3 0 0 3 3 3 3 3 3 0 3 0 0 0 0 0 3 3 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 3 3 3 3 0 0 0 0 0 3 3 3 3 3 3 0 3 0 3 0 3 3 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 3 3 3 0 0 0 0 0 0 0 3 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 0 3 0 1 1 1 1 1 3 0 3 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 0 3 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]; 

Cmap = [1 1 1; 0 0 1; 0 1 0]; 
colormap(Cmap); 
imagesc(A); 
axis off 

enter image description here

回答

2

你應該使用功能text這樣的:

text(38,15,'kingston') 

即以相反的順序,因爲你的軸是在I-J方向,而不是X-Y(試着鍵入axis xy明白我的意思)。

kingston

(我已經改變了字體大小爲15:text(38,15,'kingston','FontSize',15)

如果你想更進一步,定義城市爲單元陣列:

Cities = {'kingston','montegoBay','portRoyal','stThomas','mandeville','ochoRios'}; 

和它們在矩陣中的位置:

location = [15 38; 
    4 15; 
    18 31; 
    10 55; 
    13 21; 
    2 29]; 

A ND那麼所有你需要的是一個文本命令:

text(location(:,2),location(:,1),Cities,'FontSize',12) 

得到最終的結果是:

all cities

+0

實際上,我是用'文本(X,Y, '標籤')',但我把它放在'imagesc'之前。謝謝! – Jam1

相關問題