绘制 3D 线,matlab

2024-04-04

我的问题非常标准,但找不到解决方案。

我有点=[x,y,z] 并想绘制最佳拟合线。

我正在使用下面给出的函数(和 Thanx Smith)

% LS3DLINE.M   Least-squares line in 3 dimensions.
%
% Version 1.0    
% Last amended   I M Smith 27 May 2002. 
% Created        I M Smith 08 Mar 2002
% ---------------------------------------------------------------------
% Input    
% X        Array [x y z] where x = vector of x-coordinates, 
%          y = vector of y-coordinates and z = vector of 
%          z-coordinates. 
%          Dimension: m x 3. 
% 
% Output   
% x0       Centroid of the data = point on the best-fit line.
%          Dimension: 3 x 1. 
% 
% a        Direction cosines of the best-fit line. 
%          Dimension: 3 x 1.
% 
% <Optional... 
% d        Residuals. 
%          Dimension: m x 1. 
% 
% normd    Norm of residual errors. 
%          Dimension: 1 x 1. 
% ...>
%
% [x0, a <, d, normd >] = ls3dline(X)

我有一个。 所以方程可能是

points*a+dist=0

其中灰尘最少。距原点的距离。

现在我的问题是如何在 3D 中绘制最佳拟合线。


它有助于实际阅读函数的内容,该函数使用奇异值分解。

% calculate centroid
  x0 = mean(X)';

% form matrix A of translated points
  A = [(X(:, 1) - x0(1)) (X(:, 2) - x0(2)) (X(:, 3) - x0(3))];

% calculate the SVD of A
  [U, S, V] = svd(A, 0);

% find the largest singular value in S and extract from V the
% corresponding right singular vector
  [s, i] = max(diag(S));
  a = V(:, i);

最好的正交拟合线是

P = x0 + a.*t

随着参数 t 的变化。这是最大变化的方向,这意味着正交方向上的变化最小。点到这条线的正交距离的平方和被最小化。

这与线性回归不同,线性回归最小化回归线的 y 变化。该回归假设所有误差都在 y 坐标中,而正交拟合假设 x 和 y 坐标中的误差具有相同的预期大小。

[图片来源:罗杰·斯塔福德,http://www.mathworks.com/matlabcentral/newsreader/view_thread/294030]

然后你只需要创建一些 t 并绘制它:

for t=0:100,
P(t,:) = x0 + a.*t;
end
scatter3(P(:,1),P(:,2),P(:,3));

您可能想使用plot3(),在这种情况下您只需要一对点。由于一条线根据定义是无限的,因此由您决定它的开始和结束位置(取决于应用程序)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘制 3D 线,matlab 的相关文章

  • 如何读取 10 位原始图像?其中包含 RGB-IR 数据

    我想知道如何从我的 10 位原始 它有 rgb ir 图像数据 数据中提取 RGB 图像 如何使用 Python 或 MATLAB 进行阅读 拍摄时的相机分辨率为 1280x720 室内照片图片下载 https drive google c
  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • R:为绘图标题、轴标签或图例创建拉丁语/希腊语表达向量

    我想合并拉丁文和希腊文文本的向量以生成绘图标题 轴标签 图例条目等 我在下面提供了一个简单的示例 我不知道如何以原始形式呈现希腊字母 我尝试过各种组合expression parse and apply to the paste命令 但我无
  • 同时重新排序和旋转图像的高效方法

    为了快速加载 jpeg 我为turbojpeg 实现了一个 mex wrapper 以有效地将 大 jpeg 读入 MATLAB 对于 4000x3000px 的图像 实际解码只需要大约 120 毫秒 而不是 5 毫秒 然而 像素顺序是 R
  • 在 Python 中对数据进行求和

    Given that the fitting function is of type 我打算将这样的函数拟合到我拥有的实验数据 x y f x 中 但后来我有一些疑问 当涉及求和时 如何定义拟合函数 一旦定义了函数 即def func re
  • MATLAB 图中轴标签与轴之间的距离

    我正在使用 MATLAB 绘制一些数据 我想调整轴标签与轴本身之间的距离 但是 只需向标签的 位置 属性添加一点即可使标签移出图窗窗口 是否有 保证金 属性或类似的东西 在上图中 我想增加数字和标签 Time s 之间的距离 同时自动扩展数
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • iPhone CGContext:用两种不同颜色绘制两条线

    我在 iPhone 应用程序中使用 CGContext 时遇到一些问题 我试图用不同的颜色绘制几条线 但所有线最终总是具有最后使用的颜色 我尝试了几种方法 但并不幸运 我建立了一个小型示例项目来处理这个问题 这是我的代码 我在drawRec
  • 无重叠的抖动点

    My data a lt sample 1 5 100 replace TRUE b lt sample 1 5 100 replace TRUE c lt sample 1 10 100 replace TRUE d lt sample
  • 在 R 中使用 spplot 将多个绘图放在一个页面上?

    我知道如何在使用简单函数图时绘制两个图 old par lt par mfrow c 1 2 plot faithful main Faithful eruptions plot large islands main Islands yla
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • 在单个显示器中绘制多个 jpeg 图像

    我需要在单个组合显示器 或画布 中绘制和显示多个 jpeg 图像 例如 假设我有图像 a b c d jpg 每个图像的大小不同 我想将它们绘制在 2x2 网格的一页上 能够为每个子图设置标题也很好 我一直在彻底寻找解决方案 但不知道如何去
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • R-在多个图的外缘绘制居中图例

    我想在具有多个绘图的设备中的绘图区域之外绘制居中图例 SO 中提出了许多关于更改 R 图中图例位置的问题 略有不同 例如 1 R 组合图的通用标题和图例 https stackoverflow com questions 8736966 r
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN

随机推荐

  • 如何在 iOS 中使用“容器视图”?

    我注意到 XCode 中的 UI 组件 Container View 根据提供的描述 我想利用它在几个不同的屏幕上显示我的应用程序的可重用组件 我一直在网上寻找基本教程或一些相关文档 但是我还没有找到任何有用的东西 请有人建议如何连接并使用
  • 我应该如何得到Lasso模型的系数?

    这是我的代码 library MASS library caret df lt Boston set seed 3721 cv 10 folds lt createFolds df medv k 10 lasso grid lt expan
  • 如何在方向改变后保留播放视频的片段片段的实例?

    我有一个 YouTube API 片段 静态添加到我的 xml 清单文件中 即内部包含 YouTube 播放器的片段 我的项目中没有扩展片段的文件 在我的活动类中 我将这行代码放在onCreate我的活动课 youTubePlayerFra
  • 以通用方式选择有效的随机枚举值

    假设我们有一个枚举类型E enum class E underlying type of E v1 uE1 v2 uE2 vN uEN typedef typename std underlying type
  • 用c#将html转为jpg

    我做了一些搜索 尝试从 html 页面生成 jpg 文件 并找到了一种名为 IECapt 或类似的解决方案 需要服务器上的 IE 才能工作 这不是我想要的 这就是我想要做的 从 html 页面生成 jpg 图像 html 页面只是文本 然后
  • 无法转义正则表达式中的反斜杠?

    我正在使用以下正则表达式 a zA Z0 9 s 1 1000 我知道它很丑陋 但到目前为止 它已经达到了它的目的 除了反斜杠不被允许 因为我认为它应该因为它被转义了 另外 我尝试过 代替 但得到了相同的结果 有任何想法吗 如果您将其放入程
  • 如何控制边框高度?

    我有两个div 一个在左边 另一个在右边 现在我想用它们之间的边框来划分这两个 div 但是全高的边框看起来很糟糕 我想控制边框的高度 我怎么能这样做呢 边框将始终处于包含框的完整长度 元素的高度加上其填充 除了调整其应用的元素的高度之外
  • 从微调器中删除文本

    I m trying to style a spinner What I currently have is this It is EditText其次是Spinner Now I m using custom style as follo
  • 将一个 Cursor 的内容添加到另一个 Cursor

    我想连接两个游标 以便连接后第二个游标的内容也应出现在第一个游标中 这正是我的代码 public final Uri AllImage URI Int MediaStore Images Media INTERNAL CONTENT URI
  • 如何在 VueJS 单文件组件中正确使用“作用域”样式?

    The docs https vue loader vuejs org en features scoped css html在 VueJS 上声明scoped应限制组件的样式 但是如果我创建两个相同的组件baz样式 它会从一个组件泄漏到另
  • Cocoa:隐藏一个应用程序

    是否可以使用 cocoa 隐藏一个特定的应用程序 我知道您可以使用以下代码隐藏所有其他应用程序 NSWorkspace sharedWorkspace performSelectorOnMainThread selector hideOth
  • php 的 sleep() 输出

    我试图基本上每秒运行一个循环 持续 25 秒 for i 0 i lt 25 i 1 echo i sleep 1 问题是它在完全完成之前不会输出 所以在循环继续 25 次之后 有没有办法做到这一点 以便它会在每次睡眠前输出 而不是等到整个
  • 随机但仅在 Chrome 中

    我有这个函数来创建随机的数字范围 function randomRange min max return new Array max min join split map function v i return min i sort fun
  • 返回点击按钮的索引?

    我有一个包含 30 个按钮的数组 我有一个变量按钮Clicked 当我按下按钮时 如何获取索引并将索引号存储在单击的按钮中 谢谢 JButton buttons new JButton 30 for int i 1 i lt 30 i in
  • VueJS 换行符未正确渲染

    我遇到以下问题 我从包含换行符的 API 读取数据字符串 n我想在我的模板中正确显示它们 但是当我做类似的事情时 p mytext p 文本显示为 n其中的字符就像普通文本一样 响应中的文本字符串的格式为 Hello n what s up
  • 迭代多个数组的最佳方法?

    在 Ruby 中迭代多个数组的最佳 美观且高效 方法是什么 假设我们有一个数组 a x y z b a b c 我想要这个 x a y b z c Thanks 另一种方法是使用each with index 快速基准测试表明 这比使用 z
  • PHP SREG 中的 JanRain OpenID?

    我使用我发现的名为 open id 选择器的修改后的登录设置了演示 登录工作正常并且身份 url 返回 但我要求的 SREG 数据从未填充 必需或可选 我正在使用 Gmail 帐户登录我的页面 这是我编辑的 try auth php 中的代
  • 对 SolrConfig.xml 文件的更新未得到反映

    我在 SolrConfig xml 文件中添加了一个新的请求处理程序 但是每当我尝试使用新的处理程序时 我都会收到带有 未知处理程序 错误的 404 修改SolrConfig xml文件时是否还需要修改其他文件 Thanks 您需要重新启动
  • DatagramSocket.send 线程安全吗?

    我打算使用一个实例DatagramSocket并称其为send http docs oracle com javase 7 docs api java net DatagramSocket html send 28java net Data
  • 绘制 3D 线,matlab

    我的问题非常标准 但找不到解决方案 我有点 x y z 并想绘制最佳拟合线 我正在使用下面给出的函数 和 Thanx Smith LS3DLINE M Least squares line in 3 dimensions Version 1