我試圖在給定圖中顯示給定向量的值。我的代碼是:在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);
它繪製了值,但它們散佈在整個地方,並沒有很好地坐在圖形上的每個點旁邊。
我試圖在給定圖中顯示給定向量的值。我的代碼是:在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);
它繪製了值,但它們散佈在整個地方,並沒有很好地坐在圖形上的每個點旁邊。
正如我在上面的評論中所說的,使用單個向量輸入調用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
爲對象的數組處理,您可以使用用get
和set
來查詢和修改每個單獨文本對象的properties(如大小,對齊等)。
謝謝,本來會建議回答,所以我可以接受。現在好了:-) – user1574598 2014-09-05 21:36:38
你不應該在y上調用num2str嗎? – ensignr 2017-11-14 02:52:03
如果您執行了'plot(x)',您的x座標將成爲您的數組的索引,並且您的y座標將成爲該索引處'x'的值。正如所寫的那樣,如果圖中沒有任何內容(不存在負值索引),則告訴MATLAB將文本置於負x值。 – excaza 2014-09-05 13:59:46
那麼,你真的試圖運行代碼?我可以告訴你,由於'y'沒有被定義,所以代碼沒有運行。試着定義'x'和'y',如果文本仍然沒有放在正確的位置,所以回來。 – patrik 2014-09-05 14:07:36
所以,我需要創建一個向量'x'軸,值爲'1'到'7',然後創建上面的向量爲'y',然後'plot(x,y)',然後運行'text '功能? – user1574598 2014-09-05 14:35:50