Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-10-27
年龄: 49
帖子: 2
声望力: 0 ![]() |
![]()
初学matlab,遇到两个问题,请好心人解答
下面是我做的一个多项式拟合曲线的方法,输入拟合阶数,就得该阶数的拟合数据但是有个缺点, 就是sk2的数值大的话,运行起来就很慢。有没有改进的方法?谢谢!程序如下: clear sk1=7 x=[11,14,16,18,20,21.6,24,28,32,35,36] y1=[161.5000,199.1000,253.6000,269.4000,269.400,265.60,259.30,259.200,262.00,248.100,243.3000] str_n={'输入阶数'} nh_n={'5'} bk_n=inputdlg(str_n,'nnnnnnnnnnnnnnnnnnnnnnnnnnnnnn',1,nh_n) bk_n' bk_n1=str2num(char(bk_n(1))) a1=polyfit(x,y1,bk_n1); plot(x,y1,'k:','marker','o') hold on sk2=36 sk=sk2-sk1 s1=polyval(a1,x) for n=1:sk sk3(n)=sk1+n %s1(n)=polyval(a1,sk1) %ssd(n)=a1*l %ssd(n)=a1*[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1]; %多项式公式 end s1=polyval(a1,sk3) plot(sk3,s1) hold off s1 s1是我想要的值s1(n) 另外一个问题:原来程序中的多项式是定值,运行起来就没那么复杂,公式如下:ssd(n)=a1*[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1]; %多项式公式 现在我想把多项式的阶数k定为变量,[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1],将(n+sk1)^k都赋值到一个数组ss1中,ss1=,[(n+sk1)^4;(n+sk1)^3;(n+sk1)^2;(n+sk1);1],然后在ssd(n)=a1*b1 怎样实现? 两个题分开解答,谢谢大家了! |
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[分享]给大家传一个图像空间变换和直方图变换的数学推导 | johnny8088 | MATLAB论坛 | 0 | 2009-01-31 03:26 |
有哪位做过BEESSEL法数字下变频? | yqgame365 | MATLAB论坛 | 0 | 2008-12-07 23:53 |
[求助]一个有关用设计的滤波器处理声音信号的问题。 | fujinhai | MATLAB论坛 | 7 | 2008-11-13 09:31 |
Studying the World's Most Complex Dynamic Systems | TechnicalArticles | MATLAB技术文章 | 0 | 2008-08-29 00:40 |
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 | yijianmei | MATLAB论坛 | 1 | 2008-07-24 10:15 |