求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相关函数:
- 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)
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
来源:CSDN
作者:SSS_369
链接:https://blog.csdn.net/sss_369/article/details/59057029