MATLAB如何画三维散点图并且拟合公式(只要拟合的好,什么样的公式都行)

抗压强度C=[13.6 14.2 14.9 15.5 16.4 17.7 18.3 19.6 21.5 22.7 23.2 23.7 23.9 24 24.2 25.7 26.8 26.8 27.5 28.3 28.4 28.8 29.7 30.3 30.7 33.8 35.3 35.4 36.2 36.3 37.7 38.7 39.3 40.3 42.5 43.2]
孔隙率P=[15.37 33.7 12.23 11.22 33.14 33.6 12.96 31.7 13.53 11.1 11.39 12.01 10.4 12.04 13.31 10.38 10.87 10.83 12.75 16.55 11.93 9.92 10.8 11.8 11.3 13.55 11.22 9.9 9.28 9.54 11.85 10.38 9.63 11.5 9.5 9.26]
孔径分布系数R=[49.6 146.9 31.2 41.6 126.7 122.1 34.3 109.7 42.3 41.3 71.3 30.5 68.3 35.4 36.9 47.5 58.7 52.9 26.6 34.2 38.7 43.6 39.3 45.8 43 45 31.2 36.9 35 35.9 29.3 41.9 30.3 30.4 23 28.1].
用CPR的数据画三维散点图(只需要画出三维空间的点,不需要拟合成曲面图),然后根据该图形拟合出C=F(P,R)的方程,方程形式不重要,主要是拟合度高就可以
R=[49.6 146.9 31.2 41.6 126.7 122.1 34.3 109.7 42.3 41.3 71.3 30.5 68.3 35.4 36.9 47.5 58.7 52.9 26.6 34.2 38.7 43.6 39.3 45.8 43 45 31.2 36.9 35 35.9 29.3 41.9 30.3 30.4 23 28.1]

第1个回答  2012-04-10
C=[]';P=[]';R=[]';
%绘制点坐标
plot3(P,R,C,'o');
figure(2);
scatter3(P,R,C,'filled');
%利用二元线性回归拟合
n=length(C);m=2;
X=[ones(n,1) P R];
[b,bint,r,rint,s]=regress(C,X)
s2=sum(r.^2)/(n-m-1)
figure;
rcoplot(r,rint)
%p=s(3)<0.05,拟合有效
display('c=b(1)+b(2)*p+b(3)*r');追问

X=[ones(n,1) P R];%这个中n和1应该换个位置把
[b,bint,r,rint,s]=regress(C,X)%这一步运行不了,希望给说明下,谢谢了

追答

我用7.9版本运行,没问题的。你出现的情况可能是在第一步C=[]';P=[]';R=[]';没有将矩阵转置。你给出的CPR都是行向量,而我要把它们变成列向量。

追问

我之得到3张图,没有得到公式。给具体说说呗

追答

这就对了,如果你真么生成了figure3,那就说明你的程序已经运行成功了,在command窗口中最后一句话应该是c=b(1)+b(2)*p+b(3)*r。这个b向量你拖动滚动条,那三个参数就可以看到。

第2个回答  2012-04-03
L=g√[X2-x1]^2+[Y2-Y1]^2+(Z2-Z1]^2
相似回答