在Matlab中绘制线内数据标签

在Matlab中绘制线内数据标签,matlab,label,contour,Matlab,Label,Contour,我的问题与帖子类似: 我有一些数据(使用太长的函数获取,无法在这里显示),这给了我两个数组:Nv4(337x1)和t(337x1),我想在绘图线上绘制'a=40'。 我应该能够使用轮廓标签,但我需要将我的数据转换为矩阵格式第一。上面的帖子提供了一个链接来解释如何转换我们的数据,不幸的是链接已经过期,我不知道如何将我的数据转换为。举个例子会很有用 我将此作为一个新问题发布,因为我没有足够的声誉发表评论我想还有另一种方法,只需使用文本。以下是一个示例: % Create a sample curve

我的问题与帖子类似:

我有一些数据(使用太长的函数获取,无法在这里显示),这给了我两个数组:Nv4(337x1)和t(337x1),我想在绘图线上绘制'a=40'。 我应该能够使用轮廓标签,但我需要将我的数据转换为矩阵格式第一。上面的帖子提供了一个链接来解释如何转换我们的数据,不幸的是链接已经过期,我不知道如何将我的数据转换为。举个例子会很有用


我将此作为一个新问题发布,因为我没有足够的声誉发表评论

我想还有另一种方法,只需使用
文本
。以下是一个示例:

% 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);
结果如下:


最好,

您能提供您的数据的最小样本吗?还有,如果不是在矩阵中,它们的格式是什么?谢谢,我用了你的技巧!但是,它不能正确旋转,所以我不得不手动更改它,并生成代码(文件->生成代码)以获得准确的位置,这样下次就不必手动操作了。如果有人知道如何使用Clabel,我仍然想学习如何使用Clabel,但这项技术现在适合我!谢谢如果数据有噪声,旋转设置可能确实会失败。也许您可以尝试在区分之前平滑数据,以获得正确的角度。是的!我在我的x和y数据上使用了平滑(我现在没有提到!),现在旋转适合我的曲线!杰出的