matlab自定义函数拟合写法,Matlab 自定义函数拟合
%RandomAccess J0237_2 reference%BasketballPass,BQSqare, BlowingBubbles,RaceHorses,close all;clear all;RD = [1507.09 40.64755.76 36.89376.83 33.56196.96 30.771610.73 37.97631.13 34.63284.29 31.81...
%RandomAccess J0237_2 reference
%BasketballPass,BQSqare, BlowingBubbles,RaceHorses,
close all;
clear all;
RD = [
1507.09 40.64
755.76 36.89
376.83 33.56
196.96 30.77
1610.73 37.97
631.13 34.63
284.29 31.81
141.13 29.12
1634.23 38.18
749.48 34.79
353.55 31.62
166.08 28.72
1193.66 39.44
587.38 35.73
288.11 32.34
144.13 29.56
];
RD_s(1,1:4,1:2) = RD(1:4,:);
RD_s(2,1:4,1:2) = RD(5:8,:);
RD_s(3,1:4,1:2) = RD(9:12,:);
RD_s(4,1:4,1:2) = RD(13:16,:);
n = 4;
sample_number = 4;
colorset = {{'rx','r-','r--'},{'bo','b-','b--'},{'gd','g-','g--'},{'m+','m-','m--'}};
for seq_id = 1:1:n
x = RD_s(seq_id,:,1); %rate
y = RD_s(seq_id,:,2); %distortion
%method 1
fx = inline('a(1)*(x.^2) + a(2)*sqrt(x) + a(3)','a','x');
a = nlinfit(x,y,fx,[1 1 1]);
x1 = min(x):20:max(x);
y1 = a(1)*(x1.^2) + a(2)*sqrt(x1) + a(3);
%method 2
fx2 = polyfit(x,y,2);
yvalue = polyval(fx2,x);
x2 = x1;
y2 = polyval(fx2,x2);
%y2 = fx(1)*x1.^2 + fx(2)*x1 + fx(3); %polyval(fx,x1);
plot(x,y,colorset{1,seq_id}{1,1},x1,y1,colorset{1,seq_id}{1,2});
hold on
plot(x2,y2,colorset{1,seq_id}{1,3});
grid on;
end
% for seq_id = 1:1:n % x = RD_s(seq_id,:,1); %rate % y = RD_s(seq_id,:,2); %distortion % fx = polyfit(x,y,2); % yvalue = polyval(fx,x); % x1 = 0:20:max(x); % y1 = polyval(fx,x1); % %y2 = fx(1)*x1.^2 + fx(2)*x1 + fx(3); %polyval(fx,x1); % plot(x,y,colorset{1,seq_id}{1,1},x1,y1,colorset{1,seq_id}{1,2}); % hold on % grid on; % end
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)