【问题标题】:Intersection between curve from points and a line点曲线与直线的交点
【发布时间】:2014-03-15 18:07:39
【问题描述】:

我是 matlab 新手,我试图找到曲线(从点)和直线之间的交点。

我有一些点,我已经绘制了这些点之间的插值。现在我想找到插值 (xi,yi) 曲线和另一条线的交点。

x = [94.8;84.4;63.1;49.4;40.6;33.8;23.2;20.1;10.2;9.2;7.9];
y = [0; 11.4;29.7;41.6;47.5;50.1;52.9;50.6;32.2;28.1;0];
xi=94.8:-0.1:7.9;
yi=interp1(x,y,xi,'spline');
plot(x,y,'*');
hold on
plot(xi,yi);

我已经研究过,但我发现的所有东西都需要一个函数。我已经尝试使用 polyfit 将曲线转换为函数,但拟合不够好。

在matlab中可以做到吗?

谢谢。

【问题讨论】:

    标签: matlab intersection points curve


    【解决方案1】:

    基本上,错误消息要求您输入函数句柄(类似于其他语言中的函数指针)。没有必要将其转换为与函数的数学定义相匹配的东西(例如多项式):

    f=@(xi)(interp1(x,y,xi,'spline'))
    

    这可以在每个 xi 处进行评估。

    像其他所有功能一样使用:

    f(1)
    f(1:3)
    

    【讨论】:

    • 谢谢,但现在我想找到另一条线的交点(例如 y = 2x + 2),它可能相交两次。
    • 我已经用这个函数解决了:link.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多