matlab拟合三维直线,三维数据拟合直线
这是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拟合三维直线,三维数据拟合直线相关推荐
- MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例
MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例 MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例 1.基本概念 人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的 ...
- matlab遗传算法拟合,基于遗传算法的数据拟合在MATLAB环境中的实现
湖 南 农 机 2010 年 5 月 收稿日期:2010-04-02 作者简介:林鸿彬(1987-),男,海南海口人,主要从事信息与计算科学专业的学习. 摘 要:在自然科学中,常常在相关的 2 个量之 ...
- python拟合统计分布_将数据拟合到分布?
这是一个复杂的问题,没有完美的答案.我将试着给你一个主要概念的概述,并为你指出一些有用的阅读方向. 假设你有一组一维的数据,并且你有一组有限的概率分布函数,你认为这些数据可能是从中产生的.您可以独立地 ...
- matlab怎么把导入的数据拟合,matlab曲线拟合怎么做,来研究下吧
Matlab是一个在数学领域中使用广泛的软件.它有很高的处理数据的能力.下面,小编就给大家讲解一下matlab曲线拟合怎么做. 工具/材料 matlab7.0及以上版本 操作方法 01 第一步,打开m ...
- matlab对比图曲线,用于数据拟合,图像对比的MATLAB作图命令PLOTYY
MATLAB作图:plotyy使用方法.即:横坐标相同,纵坐标不同的两条曲线画在同一图上进行比对. 例1. 需要采用图形句柄,详细内容参考MATLAB帮助文件有关plotyy的例程 %%This ex ...
- matlab 邻近度 离群点_Matlab 学习记录帖 —— 多项式、插值和数据拟合
关于多项式Matlab命令 一个多项式的幂级数形式可表示为: 也可表示为嵌套形式: 或因子形式 幂系数:在matlab里,多项式用行向量表示,其元素未多项式的系数,并从左至右按降幂排列. Roots: ...
- 基于MATLAB的多项式数据拟合方法研究-毕业论文
摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...
- Python小白的数学建模课-23.数据拟合全集
拟合是用一个连续函数(曲线)靠近给定的离散数据,使其与给定的数据相吻合. 数据拟合的算法相对比较简单,但调用不同工具和方法时的函数定义和参数设置有所差异,往往使小白感到困惑. 本文基于 Scipy 工 ...
- 小波函数的数据拟合方法
http://www.doc88.com/p-0804368854890.html 1.数据拟合的最小二乘法 目前,数据拟合的常用方 法是最小二乘法,而基函数多采用n次多项式.切比晓夫多项 式.Ber ...
- python数据拟合
python数据拟合 文章目录 python数据拟合 1.多项式拟合 1.1 多项式拟合描述 1.2 多项式拟合实现 2.自定义函数拟合 2.1 自定义函数拟合描述 2.1 自定义函数拟合的实现 1. ...
最新文章
- autoware使用激光雷达进行目标检测(五)
- 安卓开源项目周报0411
- str与dict与eval的结合妙用
- android 滚动动画效果代码,Android Scroll滑动效果实例
- 【Git】撤销已经git add的文件
- python循环定义变量_Python变量和循环
- 锐捷客户端linux登录密码忘记,锐捷S3760忘记密码的恢复方法
- 一个简单的用于预测的BP神经网络模型
- 烟雨要饭网最终版源码
- Python 爬取4K美女图片
- 深度学习之Bias/Variance偏差、方差
- [php]-Tp5.1反序列化学习
- python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataError: (554, b'DT:SPM 163……)解决方法...
- 你们学校有计算机房吗英语否定回答,七年级下英语Unit4单元检测题
- Java开发环境:Win10安装最新版eclipse与jdk(超详细)
- 分布式鲁棒优化基础知识学习 | Ref:《鲁棒优化入门》「运筹OR帷幄」
- windows版redis安装使用
- NEON技术如何实现移动端视频高效解码AV1?
- linux目录、文件操作命令
- epic显示游戏服务器离线,无主之地3Epic离线如何进入游戏 想要Epic离线一键进入游戏就这么做...
热门文章
- docker代理设置ssl证书_家用主机 篇六:群晖Docker配置SSL证书实现https安全访问
- Pytorch简单使用MINIST数据集
- 机器学习及其MATLAB实现——BP神经网络
- 好用的自媒体爆文素材采集技巧,提高爆文创作几率
- Java数据脱敏框架
- 【工具类】数据脱敏工具类
- 深度置信网络(DBN)在Tensorflow中的实现以及它在MNIST中的应用实例
- 【华为HCIE安全考什么科目?华为HCIE安全考什么知识点?】
- 启动mongodb时发现错误libcrypto.so.10
- 卖家如何做亚马逊、Lazada、Shopee、速卖通、wish、eBay、沃尔玛、mercari、Newegg自养号测评?技术分享,带你开启掘金之路。