资源简介
提供测试用例,输入三维离散点空间坐标,可以直接获得最小二乘法的空间拟合直线,并可以求出每个离散点到空间直线的距离,方便剔除偏离较大的离散点
代码片段和文件信息
% 空间直线拟合,并求每个点到直线距离
% 读入已经存储在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
- 上一篇:读取BMP信息并显示的MATLAB程序
- 下一篇:matlab实现模糊c均值聚类
相关资源
- RLS最小二乘法自适应滤波器m文件
- 非线性最小二乘法Matlab实现
- 基于MATLAB的递推最小二乘法辨识与仿
- 最小二乘法的matlab实现
- 系统辨识 递推最小二乘法
- 正交最小二乘法的matlab代码(ols)
- 多级最小二乘法Matlab程序
- 最小二乘法matlab代码205964
- 永磁同步电机递推最小二乘算法参数
- 最小二乘法 MATLAB
- 最小二乘椭圆拟合matlab
- 最小二乘估计MATLAB实现
- matlab最小二乘法滤波
- matlab系统辨识最小二乘整批算法
- 最小二乘影像匹配程序matlab
- 用matlab拟合圆 基于最小二乘法 详细推
- 最小二乘法实现位相解包裹
- 最小二乘辨识模型+matlab代码
- 最小二乘法曲线拟合的matlab实现
- 一阶惯性加延迟环节的matlab曲线拟合
- 谐波恢复中的SVD_TLS算法
- 最小二乘法作谱估计的MATLAB程序
- 最小二乘法辨识
- 批处理最小二乘Matlab代码
- 最小二乘法定位解算
- 最小二乘法系统辨识
- 电力系统状态估计-最小二乘法-matla
- 维纳滤波和约束最小二乘滤波图像复
- 偏最小二乘法总算法matlab代码
- 抗差最小二乘Matlab代码
评论
共有 条评论