MATLAB拟合的曲线不能显示出来
我用MATLAB来拟合曲线,各散点的值能显示出来,但就是那条拟合的曲线不能显示,请问怎么回事呢?我的程序为:clear,clcF=@(p,x)(x(:,2)+2.*x(:...
我用MATLAB来拟合曲线,各散点的值能显示出来,但就是那条拟合的曲线不能显示,请问怎么回事呢?
我的程序为:
clear,clc
F=@(p,x)(x(:,2)+2.*x(:,1)+3.*p(2)).^(3+p(1))-((x(:,2)+p(2)).*(x(:,1)+p(2)).^2).*(27.*(x(:,2)+2.*x(:,1)+3.*p(2)).^p(3)+p(3).*0.1013.^p(2));
x=[10,169.5
30,245.75
45,289
60,342.7];
p0=[1 1 1 ];
warning off
p=nlinfit(x,zeros(size(x,1),1),F,p0);
disp('m、c、u分别为:');
disp(num2str(p));
plot(x(:,1),x(:,2),'ro');
hold on;
ezplot(@(x,y)F(p,[x,y]),[0,1,-1e-3,1e-3]);
xlabel('x');
ylabel('y');
title('Duveau and Henry(matrix)');
legend('实验值','拟合曲线') 展开
我的程序为:
clear,clc
F=@(p,x)(x(:,2)+2.*x(:,1)+3.*p(2)).^(3+p(1))-((x(:,2)+p(2)).*(x(:,1)+p(2)).^2).*(27.*(x(:,2)+2.*x(:,1)+3.*p(2)).^p(3)+p(3).*0.1013.^p(2));
x=[10,169.5
30,245.75
45,289
60,342.7];
p0=[1 1 1 ];
warning off
p=nlinfit(x,zeros(size(x,1),1),F,p0);
disp('m、c、u分别为:');
disp(num2str(p));
plot(x(:,1),x(:,2),'ro');
hold on;
ezplot(@(x,y)F(p,[x,y]),[0,1,-1e-3,1e-3]);
xlabel('x');
ylabel('y');
title('Duveau and Henry(matrix)');
legend('实验值','拟合曲线') 展开
展开全部
关于曲线没有画出来,请检查是否发生如下问题:
1、画图函数的调用是否有误。如果错误的使用了画图函数,当然就会画不出图来,例如传入参数与要求不符合、数据类型不匹配等。这种错误多数情况下matlab会给出警告、提示。
2、图最后的axis范围是否囊括了所化曲线的区域。有时候,由于画了2条以上曲线,第二条曲线的范围内会看不到第一条曲线,这时候需要把范围放大。
3、新手最常见的失误,没有使用hold on命令,导致后画曲线把先画的曲线覆盖。这时候图中不显示第一条曲线。
4、关于隐函数,经过测试,对一些特俗情况,ezplot失效。案例:
syms r t%r为距离坐标 t为角度坐标,极坐标
f(r,t)=r+2*cos(t);%定义一个对r的隐函数,f=0时其实这是一个圆
syms x y;
f1(x,y)=f((x^2+y^2)^0.5,atan(y/x));
figure
ezplot(f1);
图形显然是一个圆,但是ezplot什么也画不出来。
1、画图函数的调用是否有误。如果错误的使用了画图函数,当然就会画不出图来,例如传入参数与要求不符合、数据类型不匹配等。这种错误多数情况下matlab会给出警告、提示。
2、图最后的axis范围是否囊括了所化曲线的区域。有时候,由于画了2条以上曲线,第二条曲线的范围内会看不到第一条曲线,这时候需要把范围放大。
3、新手最常见的失误,没有使用hold on命令,导致后画曲线把先画的曲线覆盖。这时候图中不显示第一条曲线。
4、关于隐函数,经过测试,对一些特俗情况,ezplot失效。案例:
syms r t%r为距离坐标 t为角度坐标,极坐标
f(r,t)=r+2*cos(t);%定义一个对r的隐函数,f=0时其实这是一个圆
syms x y;
f1(x,y)=f((x^2+y^2)^0.5,atan(y/x));
figure
ezplot(f1);
图形显然是一个圆,但是ezplot什么也画不出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询