作业帮 > 综合 > 作业

求matlab高手解决个问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 06:44:18
求matlab高手解决个问题
我现在已经算得一个圆柱中各点的温度分布(柱坐标下算得的),要怎样才能把这个空间的分布可视化地表现出来,看了书好像可用slice或者contour3这两个命令,但是由于数据是柱坐标下算得的,不能用meshgrid生成网格,所以就不知道怎么画了,
圆柱中的分布,那么数据应该是一个三维矩阵
三维分别表示 theta极角 r极半径 z高 而矩阵中的内容是每点的温度
我不知道你的数据三维的顺序和储存的结构是怎样的
我举个离子,你看怎么用到你的数据
[ r theta z]=meshgrid(0:0.05:1,linspace(0,2*pi,31),-1:0.05:1);
v=r.^2-z.^2; %以上得到矩阵 r theta z v
[x y]=pol2cart(theta,r); %将r theta转为x y
[xx yy zz]=meshgrid(-1:0.05:1); %根据x,y,z的范围,用meshgrid生成标准网格
vv=griddata3(x,y,z,v,xx,yy,zz); %插值计算变准网格上的数值,数据多会耗时较多
slice(xx,yy,zz,vv,0.5,0.5,-0.5); %现在可以用slice,isosurface等函数了
再问: 但是这样画出来是一个方形区域,我要表现一个圆柱区域的分布,应该怎样操作啊
再答: 方形区域,但是圆形外边是没有数据的
h=slice(....);

set(h,'edgeclor','none');

将网格除掉,就看出是近圆形的区域

slice只能作用于标准的方形网格