91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 18KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-09
  • 語言: Matlab
  • 標簽: 最小二乘??matlab??

資源簡介

提供測試用例,輸入三維離散點空間坐標,可以直接獲得最小二乘法的空間擬合直線,并可以求出每個離散點到空間直線的距離,方便剔除偏離較大的離散點

資源截圖

代碼片段和文件信息

%?空間直線擬合,并求每個點到直線距離
%?讀入已經存儲在txt文件中每個點x?y?z?坐標,也可以直接讀入二維數組,維數[點數*3]
clc;clear;close?all;
lineData=importdata(‘3D.txt‘);
figure(‘Color‘[1?1?1]);
scatter3(lineData(:1)?lineData(:2)?lineData(:3));
xlabel?‘x‘;
ylabel?‘y‘;
zlabel?‘z‘;
%zlim([2.91e4?2.97e4]);
hold?on;
%?擬合的直線必過所有坐標的算數平均值
xyz0=mean(lineData1);
%?協方差矩陣奇異變換,與擬合平面不同的是
%?所得直線的方向實際上與最大奇異值對應的奇異向量相同
centeredLine=bsxfun(@minuslineDataxyz0);????%bsxfun函數是對矩陣中每個元素進行?減?操作
[USV]=svd(centeredLine);???????%以降序順序返回矩陣的奇異值
direction=V(:1);
%?畫圖
t=-500:0.1:500;
xx=xyz0(1)+direction(1)*t;
yy=xyz0(2)+direction(2)*t;
zz=xyz0(3)+direction(3)*t;
plot3(xxyyzz)
%求三維空間一點到空間直線的距離,P為一點,Q1、Q2線上兩點
[mn]=size(xx);???
Q1(11)=xx(11);?Q1(12)=yy(11);?Q1(13)=zz(11);
Q2(11)=xx(1n);?Q2(12)=yy(1n);?Q2(13)=zz(1n);
P=zeros(13);??[m1n1]=size(lineData);??d=zeros(1m1);
for?i=1:m1
????P=lineData(i:);
????d(1i)?=?norm(cross(Q2-Q1P-Q1))/norm(Q2-Q1);
end
figure(‘Color‘[1?1?1]);
x=1:m1;
plot(xd‘r.‘);
xlabel?‘行號‘;
ylabel?‘距離‘;?
%取出所有行號
j=0;
for?i=1:m1
????if(d(1i)>10)
????????j=j+1;
????????hanghao(1j)=i;
????end
end
%去除偏差較大的點,重新存儲txt文件
[m2n2]=size(hanghao);??count=0;
for?k=1:n2
????q=hanghao(1k);
????for?k1=q:m1-1
????????lineData(q:)=lineData(q+1:);
????end
????m1=m1-1;
????count=count+1;
end
for?k2=1:m1-count
????lineData1(k2:)=lineData(k2:);
end
%?save?3D-1.txt??lineData1;








?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1617??2019-01-21?16:48??nihe.m

?????文件??????70928??2019-01-17?10:19??3D.txt

-----------?---------??----------?-----??----

????????????????72545????????????????????2


評論

共有 條評論