2015-02-23 104 views
2

我的問題是類似的帖子:matlab curve with label繪製數據標籤行中在Matlab

我有一些數據,這給了我2門陣列(使用太長時間在這裏展示的功能獲得性):NV4(337x1)和t(337x1),我想繪製'a = 40'的情節線。 我應該可以使用輪廓標籤,但是我需要先將數據轉換爲矩陣格式。上面的帖子給出了一個鏈接來解釋如何轉換我們的數據,不幸的是鏈接已過期,我不知道我應該如何將數據轉換爲。一個例子會很有用!

我張貼這是一個新的問題,因爲我沒有足夠的信譽發表評論

+0

你能提供數據的最小的樣品嗎?另外,如果不在矩陣內,它們的格式是什麼? – 2015-02-23 15:18:48

回答

7

我想有另一種方式,只需用text。下面是一個示例:

% Create a sample curve 
x = 1:337; 
y = sqrt(x); 
plot(x,y); 

% Define position to display the text 
i = round(numel(x)/2); 

% Get the local slope 
d = (y(i+1)-y(i))/(x(i+1)-x(i)); 
X = diff(get(gca, 'xlim')); 
Y = diff(get(gca, 'ylim')); 
p = pbaspect; 
a = atan(d*p(2)*X/p(1)/Y)*180/pi; 

% Display the text 
text(x(i), y(i), 'a=40', 'BackgroundColor', 'w', 'rotation', a); 

這裏是結果:

enter image description here

最佳,

+0

謝謝你,我用你的招數!然而,它沒有正確的旋轉工作,所以我不得不手動改變它,並且我生成了代碼(文件 - >生成代碼)以獲得確切的位置,以便下次我不必手動完成。如果有人知道如何去做,我仍然想學習如何用Clabel做到這一點,但是這種技術現在很適合我!謝謝 ! – user3767071 2015-02-23 16:07:05

+0

如果數據有噪音,旋轉設置可能確實失敗。也許你可以嘗試在分化之前「平滑」你的數據以獲得正確的角度。 – Ratbert 2015-02-23 16:23:58

+0

是的!我在我的x和y數據上使用了平滑(我現在沒有提及!),旋轉現在適合我的曲線!優秀 ! – user3767071 2015-02-23 16:32:04