这是goku写的程序,我做了修改,请高手帮我看看有什么问题。虽然运行没问题,但是拟合的

误差很大。是不是我的程序有问题啊。

function [a,b,w] = fit_line(a0,b0,fr,se)

% 对三维数据进行直线拟合并求出其夹角,将直线拟合成如下形式:

% x-a(1)    y-a(2)    z-a(3)

% ------ = ------ = ------

%  a(4)        a(5)       a(6)

% 原理:下面的 d 是各数据点到拟合直线的距离,利用 lsqnonlin 对 d 进行最小二乘

% 先将数据分成两段, 再分别对直线拟合。

% a0 是初始值,data 是三维数据,第一列是 x,第二列是 y,第三列是 z。fr是第一个断点,se是第二个

% by GoKu

global fr se data xdata1 ydata1 zdata1

data=load ('E:\line12.txt', '-ascii');

xdata1=data(:,1);

ydata1=data(:,2);

zdata1=data(:,3);

[a] = lsqnonlin(@fit_line_fun1,a0);

= lsqnonlin(@fit_line_fun2,b0);

% 求两条直线的夹角,异面直线夹角公式。

q=abs((a(4)*b(4)+a(5)*b(5)+a(6)*b(6)))/(norm(a(4:6))*norm(b(4:6)));

e=acos(q)*180;

w=e/pi;

function d=fit_line_fun1(a)

% 直线1的拟合函数

global  fr  xdata1 ydata1  zdata1

xdata=xdata1(1:fr);

ydata=ydata1(1:fr);

zdata=zdata1(1:fr);

point=a(1:3);

v=a(4:6);

d(1:length(xdata))=0;

for n=1:length(xdata)

m=[xdata(n);ydata(n);zdata(n)]-point(:);

d(n)=norm(cross(m,v(:)))/norm(v(:));

% 利用解析几何的知识求距离 d

end

function d=fit_line_fun2(b)

% 直线2的拟合函数

global  se xdata1 ydata1  zdata1

xdata=xdata1(se:end);

ydata=ydata1(se:end);

zdata=zdata1(se:end);

point=b(1:3);

v=b(4:6);

d(1:length(xdata))=0;

for n=1:length(xdata)

m=[xdata(n);ydata(n);zdata(n)]-point(:);

d(n)=norm(cross(m,v(:)))/norm(v(:));

% 利用解析几何的知识求距离 d

end

matlab拟合三维直线,三维数据拟合直线相关推荐

  1. MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例

    MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例 MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例 1.基本概念 人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的 ...

  2. matlab遗传算法拟合,基于遗传算法的数据拟合在MATLAB环境中的实现

    湖 南 农 机 2010 年 5 月 收稿日期:2010-04-02 作者简介:林鸿彬(1987-),男,海南海口人,主要从事信息与计算科学专业的学习. 摘 要:在自然科学中,常常在相关的 2 个量之 ...

  3. python拟合统计分布_将数据拟合到分布?

    这是一个复杂的问题,没有完美的答案.我将试着给你一个主要概念的概述,并为你指出一些有用的阅读方向. 假设你有一组一维的数据,并且你有一组有限的概率分布函数,你认为这些数据可能是从中产生的.您可以独立地 ...

  4. matlab怎么把导入的数据拟合,matlab曲线拟合怎么做,来研究下吧

    Matlab是一个在数学领域中使用广泛的软件.它有很高的处理数据的能力.下面,小编就给大家讲解一下matlab曲线拟合怎么做. 工具/材料 matlab7.0及以上版本 操作方法 01 第一步,打开m ...

  5. matlab对比图曲线,用于数据拟合,图像对比的MATLAB作图命令PLOTYY

    MATLAB作图:plotyy使用方法.即:横坐标相同,纵坐标不同的两条曲线画在同一图上进行比对. 例1. 需要采用图形句柄,详细内容参考MATLAB帮助文件有关plotyy的例程 %%This ex ...

  6. matlab 邻近度 离群点_Matlab 学习记录帖 —— 多项式、插值和数据拟合

    关于多项式Matlab命令 一个多项式的幂级数形式可表示为: 也可表示为嵌套形式: 或因子形式 幂系数:在matlab里,多项式用行向量表示,其元素未多项式的系数,并从左至右按降幂排列. Roots: ...

  7. 基于MATLAB的多项式数据拟合方法研究-毕业论文

    摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...

  8. Python小白的数学建模课-23.数据拟合全集

    拟合是用一个连续函数(曲线)靠近给定的离散数据,使其与给定的数据相吻合. 数据拟合的算法相对比较简单,但调用不同工具和方法时的函数定义和参数设置有所差异,往往使小白感到困惑. 本文基于 Scipy 工 ...

  9. 小波函数的数据拟合方法

    http://www.doc88.com/p-0804368854890.html 1.数据拟合的最小二乘法 目前,数据拟合的常用方 法是最小二乘法,而基函数多采用n次多项式.切比晓夫多项 式.Ber ...

  10. python数据拟合

    python数据拟合 文章目录 python数据拟合 1.多项式拟合 1.1 多项式拟合描述 1.2 多项式拟合实现 2.自定义函数拟合 2.1 自定义函数拟合描述 2.1 自定义函数拟合的实现 1. ...

最新文章

  1. autoware使用激光雷达进行目标检测(五)
  2. 安卓开源项目周报0411
  3. str与dict与eval的结合妙用
  4. android 滚动动画效果代码,Android Scroll滑动效果实例
  5. 【Git】撤销已经git add的文件
  6. python循环定义变量_Python变量和循环
  7. 锐捷客户端linux登录密码忘记,锐捷S3760忘记密码的恢复方法
  8. 一个简单的用于预测的BP神经网络模型
  9. 烟雨要饭网最终版源码
  10. Python 爬取4K美女图片
  11. 深度学习之Bias/Variance偏差、方差
  12. [php]-Tp5.1反序列化学习
  13. python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataError: (554, b'DT:SPM 163……)解决方法...
  14. 你们学校有计算机房吗英语否定回答,七年级下英语Unit4单元检测题
  15. Java开发环境:Win10安装最新版eclipse与jdk(超详细)
  16. 分布式鲁棒优化基础知识学习 | Ref:《鲁棒优化入门》「运筹OR帷幄」
  17. windows版redis安装使用
  18. NEON技术如何实现移动端视频高效解码AV1?
  19. linux目录、文件操作命令
  20. epic显示游戏服务器离线,无主之地3Epic离线如何进入游戏 想要Epic离线一键进入游戏就这么做...

热门文章

  1. docker代理设置ssl证书_家用主机 篇六:群晖Docker配置SSL证书实现https安全访问
  2. Pytorch简单使用MINIST数据集
  3. 机器学习及其MATLAB实现——BP神经网络
  4. 好用的自媒体爆文素材采集技巧,提高爆文创作几率
  5. Java数据脱敏框架
  6. 【工具类】数据脱敏工具类
  7. 深度置信网络(DBN)在Tensorflow中的实现以及它在MNIST中的应用实例
  8. 【华为HCIE安全考什么科目?华为HCIE安全考什么知识点?】
  9. 启动mongodb时发现错误libcrypto.so.10
  10. 卖家如何做亚马逊、Lazada、Shopee、速卖通、wish、eBay、沃尔玛、mercari、Newegg自养号测评?技术分享,带你开启掘金之路。