Matlab读取点云数据 + 显示

为君一笑 提交于 2019-12-04 03:14:02

求matlab读取三维点云数据的程序。

clear
A=importdata(‘data.txt’);
[IX,IY]=size(A);
x=A(:,1);
y=A(:,1);
y=A(:,2);
z=A(:,3);
plot3(x,y,z,’.’);
grid on

Matlab相关函数:

  1. gallery()
    函数是一个测试矩阵生成函数。
    当需要对某些算法进行测试的时,利用gallery函数生成各种性质的测试矩阵。
    格式:
    [A,B,C,…] = gallery(matname,P1,P2,…,classname)
    其中,matname表示矩阵性质,classname表示矩阵元素类型single或double。
    例如:在一个平面上随机生成10个点并作出这些点的 voronoi diagram.
x = gallery('uniformdata',[1 10],0);   
y = gallery('uniformdata',[1 10],1);   
voronoi(x,y) 

voronoi

2.tetramesh()
功能:绘制四面体
格式:
tetramesh(T,X,c)
tetramesh(T,X)
tetramesh(TR)
h=tetramesh(…)
示例:
clear

d=[-1 1];
[x,y,z] = meshgrid(d,d,d);
x=[x(:);0];
y=[y(:);0];
z=[z(:);0];
dt=DelaunayTri(x,y,z);
Tes=dt(:,:);
X=[x(:) y(:) z(:)];
tetramesh(Tes,X);
camorbit(20,0)
四面体

  • griddata()
    功能: 数据格点
    格式 :
    (1)ZI = griddata(x,y,z,XI,YI)
    用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,z。griddata 将返回曲面z 在点(XI,YI)处的插值。
    曲面总是经过这些数据点(x,y,z)的。
    输入参量(XI,YI)通常是规则的格点(像用命令meshgrid 生成的一样)。
    XI 可以是一行向量,这时XI 指定一有常数列向量的矩阵。类似地,YI 可以是一列向量,它指定一有常数行向量的矩阵。
    (2)[XI,YI,ZI] = griddata(x,y,z,xi,yi)
    返回的矩阵ZI 含义同上,同时,返回的矩阵XI,YI 是由行向量xi 与列向量yi 用命令meshgrid 生成的。
    (3)[XI,YI,ZI] = griddata(…….,method)
    用指定的算法method 计算:
    ‘linear’:基于三角形的线性插值(缺省算法);
    ‘cubic’: 基于三角形的三次插值;
    ‘nearest’:最邻近插值法;
    ‘v4’:MATLAB 4 中的griddata 算法。
    ‘cubic’ 和 ‘v4’ 生成平滑曲面,
    ‘linear’ 和 ‘nearest’ 分别具有一阶导数和零阶导数不连续。 除’v4’ 外所有方法基于数据的三角化。

  • meshgrid()
    功能:生成网格矩阵,可以是二维网格矩阵,也可以是三维。
    格式:
    二维
    [x y]=meshgrid(a b); % a 和b是一维数组
    如a=[1 2 3]; b= [2 3 4 ]; 则生成的 x 和 y 都是二维的矩阵,
    x 的每行都是 1 2 3,共三行,y 每列都是2 3 4,共三列。
    三维
    与二维一样 :[x y z]=meshgrid(a b c) ; %算出的结果根据二维的类推
    示例:

a=[1 2 3];
b=[2 3 4];
[x,y]=meshgrid(a,b)
x =
     1     2     3
     1     2     3
     1     2     3
y =
     2     2     2
     3     3     3
     4     4     4
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!