matlab期末作业 李家兴20131336013

matlab期末作业 李家兴20131336013

ID:11642448

大小:258.50 KB

页数:20页

时间:2018-07-13

matlab期末作业 李家兴20131336013_第1页
matlab期末作业 李家兴20131336013_第2页
matlab期末作业 李家兴20131336013_第3页
matlab期末作业 李家兴20131336013_第4页
matlab期末作业 李家兴20131336013_第5页
资源描述:

《matlab期末作业 李家兴20131336013》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Matlab基础及应用教程期末作业学号20131336013姓名李家兴一、M文件及注释用Matlab绘制管状几何体利用MATLAB绘制管状几何体,所谓管状几何体就是中空的像水管一样的几何体。MATLAB函数TubeLike,可以根据管道中心线坐标及各点处管道半径绘制管状几何体。程序M文件function[X,Y,Z]=TubeLike(x,y,z,r)%绘制三维管道型立体%TubeLike(x,y,z)绘制三维管道型几何体,输入参数x,y,z分别为管道中心线各点处%的坐标,x,y和z应为等长的向量,此时管道具有统一

2、的半径1.%%TubeLike(x,y,z,r)输入参数r用来指定管道半径。r可以是标量,也可以是与x,y,z等%长的向量。当r是标量时,管道具有统一半径;当r是向量时,管道%各截面处可以有不同的半径。%%TubeLike(x)输入参数x为3行或3列的矩阵,用来指定管道中心线各点处的坐标,%此时管道具有统一的半径1.%%TubeLike(x,r)输入参数x为3行或3列的矩阵,用来指定管道中心线各点处的坐标,%输入参数r(标量或向量)用来指定管道半径。%%[X,Y,Z]=TubeLike(...)输出三维管道型几何体

3、的网格数据X,Y和Z.%%Example:%t=linspace(0,2*pi,50);%x=sin(t);%y=cos(t);%z=cos(t/2);%r=sin(t);%TubeLike(x,y,z,r)ifnargin>=1&&nargin<=2%检查数据维数是否正确[m,n]=size(x);p=min(m,n);%维数ifp~=3error('应输入三维样本数据,并且样本容量应大于3');end%把样本观测值矩阵转置,使得行对应变量,列对应观测ifm>=nx=x';endyd=x(2,:);zd=x(3,

4、:);xd=x(1,:);ifnargin==1r=ones(size(xd));elseifisvector(y)ifnumel(y)==1r=y*ones(size(xd));elseifnumel(y)>1&&numel(y)==length(xd)r=y(:)';elseerror('半径应为标量或与x等长的向量');endelseerror('半径应为标量或与x等长的向量');endendelseifnargin>=3&&nargin<=4ifisvector(x)&&isvector(y)&&isvec

5、tor(z)numxyz=[numel(x),numel(y),numel(z)];ifany(numxyz-min(numxyz))error('管道中心坐标x,y,z应为等长的向量');elsexd=x(:)';yd=y(:)';zd=z(:)';endelseerror('管道中心坐标x,y,z应为等长的向量');endifnargin==3r=ones(size(xd));elseifisvector(r)ifnumel(r)==1r=r*ones(size(xd));elseifnumel(r)>1&&n

6、umel(r)==length(xd)r=r(:)';elseerror('半径应为标量或与x等长的向量');endelseerror('半径应为标量或与x等长的向量');endendelseerror('至少需要1个输入参数,至多需要4个输入参数');endt=linspace(0,2*pi,30)';%角度向量%x的一阶差分dx=diff(xd);dx=[dx(end)dx];%y的一阶差分dy=diff(yd);dy=[dy(end)dy];%z的一阶差分dz=diff(zd);dz=[dz(end)dz];

7、%计算法线与y轴正向夹角余弦,法线与y轴正向夹角正弦负值den1=sqrt(dx.^2+dy.^2);cy=dy./den1;cy(den1==0)=1;sy=-dx./den1;sy(den1==0)=0;%计算法线与z轴正向夹角余弦,法线与z轴正向夹角正弦负值den2=sqrt(dx.^2+dy.^2+dz.^2);cz=dz./den2;cz(den2==0)=1;sz=-sqrt(dx.^2+dy.^2)./den2;sz(den2==0)=0;OneMat=ones(numel(t),1);%1向量%管道

8、中心线坐标矩阵Xcenter=OneMat*xd;Ycenter=OneMat*yd;Zcenter=OneMat*zd;%单位圆坐标数据x0=cos(t);y0=sin(t);%计算三维管道型几何体的网格数据X,Y和ZXgrid=Xcenter+x0*(r.*cy)-y0*(r.*cz.*sy);Ygrid=Ycenter+x0*(r.*sy)+y0*(r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。