2014-09-05 116 views
0

我試圖在給定圖中顯示給定向量的值。我的代碼是:在MatLab圖中顯示標記值

x = [0.1 0.2 -0.1 4.1 -2 1.5 -0.1]; 
plot(x) 
a = num2str(x(:)); 
b = cellstr(a); 
c = strtrim(b); 
text(x,y,c); 

它繪製了值,但它們散佈在整個地方,並沒有很好地坐在圖形上的每個點旁邊。

+2

如果您執行了'plot(x)',您的x座標將成爲您的數組的索引,並且您的y座標將成爲該索引處'x'的值。正如所寫的那樣,如果圖中沒有任何內容(不存在負值索引),則告訴MATLAB將文本置於負x值。 – excaza 2014-09-05 13:59:46

+0

那麼,你真的試圖運行代碼?我可以告訴你,由於'y'沒有被定義,所以代碼沒有運行。試着定義'x'和'y',如果文本仍然沒有放在正確的位置,所以回來。 – patrik 2014-09-05 14:07:36

+0

所以,我需要創建一個向量'x'軸,值爲'1'到'7',然後創建上面的向量爲'y',然後'plot(x,y)',然後運行'text '功能? – user1574598 2014-09-05 14:35:50

回答

2

正如我在上面的評論中所說的,使用單個向量輸入調用plot將向量的值視爲y座標,將它們的索引作爲x座標。您提供的x矢量包含負數,但您的plot調用只有一個矢量輸入,因此圖中將沒有負x座標(在MATLAB中沒有負指數)。

假設你x向量所需y座標,下面的例子將提供我猜你期望的行爲:

y = [0.1 0.2 -0.1 4.1 -2 1.5 -0.1]; 
x = 1:1:length(y); 
plot(x,y) 
a = num2str(x(:)); 
b = cellstr(a); 
c = strtrim(b); 
h = text(x,y,c); 

哪裏h爲對象的數組處理,您可以使用用getset來查詢和修改每個單獨文本對象的properties(如大小,對齊等)。

+0

謝謝,本來會建議回答,所以我可以接受。現在好了:-) – user1574598 2014-09-05 21:36:38

+0

你不應該在y上調用num2str嗎? – ensignr 2017-11-14 02:52:03