您当前的位置:matlab资源网文章中心资料 → 文章内容

用matlab对矩阵中各列的点进行拟合

作者:曹建宇  来源:转载http://cjy19870103.blog.163.com/blog/static/556838520084871318974/  发布时间:2008-5-12 10:04:55

序一:

clc
clear;
A=[1,2,3;4,6,1;7,1,3];%原始矩阵
B=size(A);%求矩阵的大小
n=B(1);%求矩阵A的行数

j=2;%所要观察第j列的情况
m=2;%拟合多项式的最高次数

x=[1:1:n];
y=x-x+j;
z=A(:,j)';%第j列的元素
h=scatter3(x,y,z,'filled');
hold on
title('当前列的情况');
plot3(x,y,z);

x1=x;
z1=z;
p=polyfit(x1,z1,m);
x2=1:0.1:n;
z2=polyval(p,x2);
y2=x2-x2+j;
plot3(x2,y2,z2,'r');
hold off;

程序二:

clc;
clear;
A=[1,2,3;4,6,1;7,1,3];%原始矩阵
B=size(A);%求矩阵的大小
n=B(1);%矩阵A的行数

j=3;%所要观察第j列的情况
m=2;%拟合多项式的最高次

x=[1:1:n];
y=x-x+j;
z=A(:,j)';%第j列的元素
subplot(2,2,1);
h=scatter3(x,y,z,'filled');
hold on
title('当前列的情况');
plot3(x,y,z);
x1=x;
z1=z;
p=polyfit(x1,z1,m);
x2=1:0.1:n;
z2=polyval(p,x2);
y2=x2-x2+j;
plot3(x2,y2,z2,'r');
hold off;

subplot(2,2,2);
for j1=1:n
    y=x-x+j1;
    z=A(:,j1)';%第j列的元素
    h=scatter3(x,y,z,'filled');
    hold on;
    if j1==j
        %plot3(x,y,z,'r');
        x1=x;
        z1=z;
        p=polyfit(x1,z1,m);
        x2=1:0.1:n;
        z2=polyval(p,x2);
        y2=x2-x2+j;
        plot3(x2,y2,z2,'r');
    else
        %plot3(x,y,z);
        x1=x;
        z1=z;
        p=polyfit(x1,z1,m);
        x2=1:0.1:n;
        z2=polyval(p,x2);
        y2=x2-x2+j1;
        plot3(x2,y2,z2,'g');
    end
end
hold on ;
title('总体情况1');
hold off;

subplot(2,2,3);
mesh(A);
hold on ;
title('总体情况2');
hold off;

文章评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -