有一对x和y,利用matlab拟合出一个函数来,怎么根据y值去求x呢?

clc,clear;x=[051.676.1100.7126.6148.0180.0202.2227.2251.0278.2300.9325.6352.1376.1400... clc,clear;
x=[0 51.6 76.1 100.7 126.6 148.0 180.0 202.2 227.2 251.0 278.2 300.9 325.6 352.1 376.1 400.2 450.6 601.1 652.5 678.9 701.1 726.8 751.6 776.4 800.8 825.2 874.4 899.4 925.4];
y=[28.62 -20.79 -8.63 -2.78 11.37 5.54 -5.31 3.84 24.39 49.72 216.64 496.37 663.02 1932.07 3057.32 3650.94 4203.80 1922.06 3014.89 3780.21 435.34 280.74 183.06 155.06 148.36 1205.09 178.87 62.15 44.42];
xi=0:10:925.4;
yi=interp1(x,y,xi);
plot(x,y,'o',xi,yi);
展开
 我来答
lhmhz
高粉答主

2017-12-30 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部

解决思路:利用已通过一元插值后的xi、yi值,然后反插值求出x值。

>>x=[。。。],y=[。。。]

>>xi=0:10:925.4;
>>yi=interp1(x,y,xi);

>>y2=1813.7781;

>>x2=interp1(yi,xi,y2)

>> x1=349.63;  %验证

>> y1=interp1(xi,yi,x1)

运行结果

x2 =  349.63(当y2=1813.7781)

东隅and桑榆_
2019-10-17
知道答主
回答量:2
采纳率:0%
帮助的人:1296
展开全部

我是自己编了一个程序,参考别人的回答,我的回答如下:

x=[-40 -38.25 -36.24 -33.53 -30.59 -27.06 -22.94 -17.06 -8.24 8.24 10 13.53 16.82 20.59 25.88 31.76 40 52.35 76.24 78.82 83.53 88.82 94.71 101.18 110.59 122.94 140.94];

y=[100 90 80 70 60 50 40 30 20 10 9 8 7 6 5 4 3 2 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2];

xi=-40:0.01:140.96;

yi=interp1(x,y,xi);

xi=interp1(y,x,yi);

y1=1.21;

x1=interp1(y,x,y1)

x2=71.2231;

y2=interp1(x,y,x2)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式