数据是这样的
x=[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.5,0.5,0.5,0.5,0.5,0.5,0.6,0.6,0.6,0.6,0.6,0.7,0.7,0.7,0.7,0.8,0.8,0.8,0.9,0.9,1]
y=[0.139,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,0.243,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,0.34,0.4,0.5,0.6,0.7,0.8,0.9,1,0.438,0.5,0.6,0.7,0.8,0.9,1,0.535,0.6,0.7,0.8,0.9,1,0.632,0.7,0.8,0.9,1,0.722,0.8,0.9,1,0.819,0.9,1,0.91,1,1]
z=[61.22,61.4,62.55,63.71,64.24,65.43,66.67,68.09,70.24,71.10,59.11,59.38,60.97,61.61,63.28,65.17,67.3,70.01,71.1,59.89,60.1,60.81,62.73,64.75,67.07,69.9,71.1,56.72,58.04,60.61,63.32,66.19,69.76,71.1,55.46,57.26,60.97,64.93,69.5,71.1,57.34,58.14,63.41,69.27,71.1,62.78,63.2,69.25,71.1,69.01,69.25,71.1,69.25,71.1,71.1]
求助啊
每一个xyz划分成一组点
请问怎么添加我的数据呢?本人比较菜
追答你的(x,y)数据分布在一个三角形区域里面,不是正方形的数据区域(即不能弄成矩阵的形式),不好进行曲面插值,你是想进行曲面的平滑还是拟合成某种参数待定的二元函数形式?
追问曲面的平滑就行,做出一个曲面来,可以帮忙写个代码出来吗,谢谢
追答%x=你的x数据,这里省略
%y=你的y数据,这里省略
%z=你的z数据,这里省略
zz=zeros(10);
I=reshape(1:100,10,[]);
I1=reshape(tril(I),1,[]);
I1(I1==0)=[];
zz(I1)=z;
zz=zz+triu(zz',1);
[xx,yy]=meshgrid(0.1:0.1:1);
yy1=yy;
yy1(1:11:100)=[0.139,0.243,0.34,0.438,0.535,0.632,0.722,0.819,0.91,1];
for i=1:10
zz(i,i) =spline(yy1(:,i),zz(:,i),yy(i,i));
end
[xxx,yyy]=meshgrid(linspace(0,1,100));
zzz = interp2(xx,yy,zz,xxx,yyy,'spline',nan);
I=reshape(1:10000,100,[]);
I1=reshape(triu(I),1,[]);
I1(I1==0)=[];
zzz(I1)=nan;
surf(xxx,yyy,zzz)
shading interp
xlabel('x');ylabel('y');zlabel('z');