matlab用interp1插值,报错,请亲们解答,万分感谢

码农也有梦想 2018-07-05 03:49:30
如以下代码,插值报错:错误使用 griddedInterpolant网格矢量必须包含特征点,很绝望,网上有人回答用sort进行排序,但是还没用,请各位大牛指点一下,万分感谢!!!
x=[1:0.1:10,7.11,8,11,9,11,11:0.1:20];
y=x.^3.*sin(x);
plot(x,y);hold on;
[x,id]=sort(x);
y=y(id);
xx=(1:0.001:20);
yy = interp1(x,y,xx,'pchip');
plot(xx,yy,'r');
...全文
8438 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
北方雨林 2021-03-19
  • 打赏
  • 举报
回复 6
看时间是好多年前的帖子了,今天我也碰到了这个问题。现已查找到原因:作为x轴,必须是单调的,不能有破坏单调性的数字(包括重复的数字)。希望帮到遇到同样问题的困惑者。
DAVIED9 2018-08-09
  • 打赏
  • 举报
回复 2
大兄弟, 不要插入重复的值啊,不然MATLAB不知道那个点到底怎么算, x 初始赋值改成这个就OK了

x=[1:0.1:10,7.11,11:0.1:20];

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧