求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