如何运用MATLAB求曲线某点纵坐标对应的横坐标?

如标题。

1、在图形界面窗口中,工具栏上的【Data Cursor】工具,然后再在需要查看坐标值的数据点上单击左键即可。

2、也可以选择【tools】菜单栏下面的【Data Cursor】选项,具体情况如图:

3、最终效果如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-03

在MATLAB中,已知曲线某点横坐标x0来求纵坐标y0的问题,可以通过插值函数interp1()来很好地解决。但是反过来如何解决呢?我想到了下面的办法来最大程度地得到横坐标的精确值x0。

      1、首先通过MATLAB曲线图观察出纵坐标y0与曲线s=s(x,y)的交点p,判断出交点p在横坐标轴上的范围[a,b];

      2、通过在区间[a,b]上灵活应用插值函数interp1,可以得到包含纵坐标y0在内的一系列值;

      3、通过函数find(y>y0,1,'first')求得第一个比y0大的y的索引,通过find(y<y0,1,'last')求得第一个比y0小的y的索引;

      4、通过以上索引可相应求得横坐标上的值a0和b0,而精确值x0便位于a0和b0之间;

      5、可以取x0= mean([a0,b0]),便可求得纵坐标所对应的横坐标,而且精度随插值步长的减小而提高。

以上方法简单实用,通过使用该法,很容易地解决了前面所提出的问题,效果可用一张图表示如下:

本回答被提问者采纳
第2个回答  推荐于2017-09-03
在matlab中有一个interp1()函数,可以帮助解决问题,具体情况如下:
MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method')

其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'method'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'cubic'立方插值.缺省时表示线性插值
注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
例如:在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为
12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,
推测中午12点(即13点)时的温度.
x=0:2:24;
y=[12 9 9 10 18 24 28 27 25 20 18 15 13];
a=13;
y1=interp1(x,y,a,'spline')
结果为: 27.8725
若要得到一天24小时的温度曲线,则:
xi=0:1/3600:24;
yi=interp1(x,y,xi, 'spline');
plot(x,y,'o' ,xi,yi)
相似回答