分區域分析數據趨勢並擬合曲面

clear; clc;close all;
reprojectionErrorXYZ=importdata('reprojectionErrorXYZ.txt');
[r,c] = size(reprojectionErrorXYZ);
%sub c r
sub00 = zeros(1,3);
sub01 = zeros(1,3);
sub02 = zeros(1,3);
sub10 = zeros(1,3);
sub11 = zeros(1,3);
sub12 = zeros(1,3);
sub20 = zeros(1,3);
sub21 = zeros(1,3);
sub22 = zeros(1,3);
for i=1:r
   if reprojectionErrorXYZ(i,1)<=213
       if reprojectionErrorXYZ(i,2)<=133
           sub00 = [sub00;reprojectionErrorXYZ(i,:)];
       elseif reprojectionErrorXYZ(i,2)>133 && reprojectionErrorXYZ(i,2)<=133*2
           sub01 = [sub01;reprojectionErrorXYZ(i,:)];
       else
           sub02 = [sub02;reprojectionErrorXYZ(i,:)];
       end
   elseif reprojectionErrorXYZ(i,1)>213 && reprojectionErrorXYZ(i,1)<=213*2
       if reprojectionErrorXYZ(i,2)<=133
           sub10 = [sub10;reprojectionErrorXYZ(i,:)];
       elseif reprojectionErrorXYZ(i,2)>133 && reprojectionErrorXYZ(i,2)<=133*2
           sub11 = [sub11;reprojectionErrorXYZ(i,:)];
       else
           sub12 = [sub12;reprojectionErrorXYZ(i,:)];
       end
   else
       if reprojectionErrorXYZ(i,2)<=133
           sub20 = [sub20;reprojectionErrorXYZ(i,:)];
       elseif reprojectionErrorXYZ(i,2)>133 && reprojectionErrorXYZ(i,2)<=133*2
           sub21 = [sub21;reprojectionErrorXYZ(i,:)];
       else
           sub22 = [sub22;reprojectionErrorXYZ(i,:)];
       end
   end
end

figure(1)
x = sub00(2:size(sub00,1),1);
y = sub00(2:size(sub00,1),2);
z = sub00(2:size(sub00,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(2)
x = sub01(2:size(sub01,1),1);
y = sub01(2:size(sub01,1),2);
z = sub01(2:size(sub01,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(3)
x = sub02(2:size(sub02,1),1);
y = sub02(2:size(sub02,1),2);
z = sub02(2:size(sub02,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(4)
x = sub10(2:size(sub10,1),1);
y = sub10(2:size(sub10,1),2);
z = sub10(2:size(sub10,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(5)
x = sub11(2:size(sub11,1),1);
y = sub11(2:size(sub11,1),2);
z = sub11(2:size(sub11,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(6)
x = sub12(2:size(sub12,1),1);
y = sub12(2:size(sub12,1),2);
z = sub12(2:size(sub12,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(7)
x = sub20(2:size(sub20,1),1);
y = sub20(2:size(sub20,1),2);
z = sub20(2:size(sub20,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(8)
x = sub21(2:size(sub21,1),1);
y = sub21(2:size(sub21,1),2);
z = sub21(2:size(sub21,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(9)
x = sub22(2:size(sub22,1),1);
y = sub22(2:size(sub22,1),2);
z = sub22(2:size(sub22,1),3);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
surf(Xi,Yi,Zi)
hold on
plot3(x,y,z,'r.')
xlabel('x')
ylabel('y')
zlabel('error')

figure(10)
plot3(reprojectionErrorXYZ(:,1),reprojectionErrorXYZ(:,2),reprojectionErrorXYZ(:,3),'r.')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章