matlab画图对点标记怎么对不齐

matlab画图,我想在某一点标记一下,但是图片上的标记符号移位了,不是在点的正中间,怎么办?


```figure
plot(a)
hold on
plot( [0 500],[3.5 3.5],'r-.')
hold on
plot( [0 500],[2.5 2.5],'r-.')
hold on
for i=1:length(a)
    if a(i)>=3.5 
    text(i,a(i),"*","color","r","FontSize",20);
    end
end


img

```

在 MATLAB 中,text 函数是用于在指定坐标处插入文字或标记的函数。如果标记符号位置不准确,可以考虑更改 text 函数中的位置参数。通过调整位置参数,可以将文本或标记的位置向左或向右、向上或向下移动。

在您提供的代码中,text 函数中的位置参数在默认情况下是放置在数据点的左下方的。如果需要将其移到数据点的正中间,可以用 datacursormode 工具,该工具可以直接在图形中标出数据点,并可以手动拖动标记位置。

示例代码:

figure
plot(a) 
hold on 
plot([0 500],[3.5 3.5],'r-.') 
hold on 
plot([0 500],[2.5 2.5],'r-.') 
hold on 
for i = 1:length(a)     
    if a(i)>=3.5
        h = text(i,a(i),'*','color','r','FontSize',20);
        set(h, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle');
    end 
end

在上述代码中,我们创建了一个新的 text 对象 h,并使用 set 函数调整其位置参数。设置 'HorizontalAlignment', 'center' 和 'VerticalAlignment', 'middle' 可使图形与数据点中心对齐。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/349456
  • 这篇博客你也可以参考下:matlab遗传算法求函数极值,加粗那行出现问题咋解决呀,求帮忙!
  • 除此之外, 这篇博客: matlab多元函数拟合,只有数据,不知道函数形式,未知函数关系的多元函数拟合中的 今天遇到一个问题,是求解matlab多元函数拟合的, 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    但是函数关系不确定,就是需要自己定义函数关系,然后自己调试函数中需要的参数的值。

    刚开始思路是自定义一个函数关系式,然后用pso求解最优参数,其最后输出的y的值为下图所示,输入有三个自变量,x1,x2,x3.

    最后的需求是找到x1,x2,x3.与y的具体关系式子,比如
    y=ax1+bx2+cx3;
    y=a
    x1+bx2+cx3+ex1x1+fx2x2++ex3x3;等等

    找到思路后,尝试了很多能想到的函数关系,当然,部分结果我感觉是还可以:从刚开始的下图效果,这个拟合结果整体趋势是有了,但是结果很不理想,然后增加了更复杂的参数模型
    在这里插入图片描述
    进补到下列效果,大概是63个值与标准y的误差在1%-2%之间,此时自定义的拟合函数变为
    在这里插入图片描述
    看到效果还不错,然是还是有很大误差。开头和结尾差距还是很大在这里插入图片描述

    到后来,放弃自己试了, 用ANN去算了,然后手动带内核参数生成函数,大概有37个参数,函数式一长串,但是拟合效果还是可以的,如下图所示:
    在这里插入图片描述
    但是这个效果,只有220个点误差在范围内,一共280个数据,还有60个数据误差偏大

    仔细看了看发现,应该就是开头和结尾误差大
    在这里插入图片描述
    最后,最后,经过多次尝试,
    在这里插入图片描述
    278个点正确,满足1%-2%的误差,也达到最终拟合需求。

    在这里插入图片描述
    记录一下,需要数据拟合的可以私聊


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^