2015-02-23 72 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