rhz 发表于 2005-12-9 09:57

关于用coneplot画图

我想用coneplot画一个类似于MATLAB的coneplot帮助里的流场图。我要调用EXCEL里面的数据,数据包括xyz三个方向的分速度U、V、W,可是我在使用函数coneplot(x,y,z,u,v,w,cx,cy,cz)中发现不知道怎么把调用出来的EXCEL的数据跟函数里面的U、V、W联系起来。请大家帮忙解决一下!!!(关于coneplot的例图可以在matlab的帮助里面找到)<BR>附件里面是我要调用的表格。表格当中的x是从1到6,y是从1到14,z是从1到7。麻烦大家帮我看一下应该怎么用coneplot画出类似“coneplot帮助”里面的流场图。 <BR>

suffer 发表于 2005-12-9 15:35

回复:(rhz)关于用coneplot画图

U,V,W和meshgrid的格式一致

rhz 发表于 2005-12-10 20:23

急求帮助:coneplot画图(刚才忘了传表格,忙死我了!)

我想用coneplot画一个类似于MATLAB的coneplot帮助里的流场图。我要调用EXCEL里面的数据,数据包括xyz三个方向的分速度U、V、W,可是我在使用函数coneplot(x,y,z,u,v,w,cx,cy,cz)中发现不知道怎么把调用出来的EXCEL的数据跟函数里面的U、V、W联系起来,直接用meshgrid好像不能生成6*14*7的矩阵(因为xyz用meshgrid后都是6*14*7的矩阵,U、V、W也必须相同),而是生成了588*588*588的矩阵。请大家帮忙解决一下!!!(关于coneplot的例图可以在matlab的帮助里面找到)
附件里面是我要调用的表格。表格当中的x是从1到6,y是从1到14,z是从1到7。麻烦大家帮我看一下应该怎么用coneplot画出类似“coneplot帮助”里面的流场图。

happy 发表于 2005-12-11 11:24

回复:(rhz)急求帮助:coneplot画图(刚才忘了传表格...

可以的啊,举个例子=meshgrid(1:6,1:14,1:7)

rhz 发表于 2005-12-12 09:01

非常感谢,终于有人回应了!你说的是XYZ,可是UVW就不行了,这三个速度是测出来的,怎么生成跟XYZ一样维数的矩阵呢?用meshdrid好像不行。

adminftp 发表于 2005-12-12 20:35

回复:(rhz)急求帮助:coneplot画图(刚才忘了传表格...

不太明白你的意思
简单看一下没什么问题
meshgrid生成的元素6*14*7=588
excel中U,V,W也分别是588个
他们的对应关系也很简单啊,和你的Excel一模一样啊
比如坐标位置(1 3 2)这个位置对应的U,V,W分别是( 0.63 -0.494 -2.415)

[ 本帖最后由 ChaChing 于 2009-7-10 00:04 编辑 ]

rhz 发表于 2005-12-12 21:36

<P><FONT color=#ee3d11><FONT color=#000000>A=xlsread('E:\Book1.xls');<BR></FONT>for i=1:588<BR>    U(:,:,i)=A(i,4);<BR>    V(:,:,i)=A(i,7);<BR>    W(:,:,i)=A(i,10);<BR>end<BR>=meshgrid(1:6,1:14,1:7);<BR></FONT><FONT color=#000000>xmin=min(X(:));<BR>xmax=max(X(:));<BR>ymin=min(Y(:));<BR>ymax=min(Y(:));<BR>zmin=min(Z(:));<BR>zmax=max(Z(:));<BR>daspect();<BR>xrange=linspace(xmin,xmax,1);<BR>yrange=linspace(ymin,ymax,1);<BR>zrange=linspace(zmin,zmax,1);<BR>=meshgrid(xrange,yrange,zrange);<BR></FONT><FONT color=#f73809>hcones=coneplot(X,Y,Z,U,V,W,cx,cy,cz,1);<BR></FONT>set(hcones,'FaceColor','red','EdgeColor','none');<BR>hold on;</P>
<P>wind_speed=sqrt(U.^2+V.^2+W.^2);<BR>hsurfaces=slice(x,y,z,wind_speed,,ymax,zmin);<BR>hold off;<BR>axis tight;view(30,40);axis off;<BR>camproj perspective;camzoom(1.5);<BR>camlight right;lighting phong;</P>
<P>set(hsurfaces,'AmbientStrength',.6);<BR>set(hcones,'DiffuseStrength',.8);</P>
<P>这是我设想的程序,其中大部分与<FONT color=#000000>coneplot函数的帮助里的例子相同,但是我认为红字部分有问题,因为</FONT><FONT color=#000000>X,Y,Z,U,V,W必须都是6*14*7的矩阵,可是我不知道怎么把<FONT color=#000000>X,Y,Z,与U,V,W</FONT>对应起来。<BR>大家帮忙看看!我在这里先谢谢各位高手了!</FONT></P>

frogfish 发表于 2005-12-12 21:56

回复:(rhz)A=xlsread('E:\Book1.xls');for i=1:588...

<DIV class=quote><B>以下是引用<I>rhz</I>在2005-12-12 21:36:25的发言:</B><BR>
<P><FONT color=#ee3d11><FONT color=#000000>A=xlsread('E:\Book1.xls');<BR></FONT>for i=1:588<BR>    U(:,:,i)=A(i,4);<BR>    V(:,:,i)=A(i,7);<BR>    W(:,:,i)=A(i,10);<BR>end<BR>=meshgrid(1:6,1:14,1:7);</FONT></P></DIV>
<P>见上面的程序改成:<BR><BR>for i=1:6<BR>    for j=1:7<BR>      for k=1:14<BR>            U(i,k,j)=A(98*(i-1)+7*(j-1)+k,4);<BR>            V(i,k,j)=A(98*(i-1)+7*(j-1)+k,7);<BR>            W(i,k,j)=A(98*(i-1)+7*(j-1)+k,10);<BR>      end<BR>    end<BR>end<BR>=meshgrid(1:14,1:6,1:7);<BR><BR>看一下</P>

rhz 发表于 2005-12-13 10:50

好像可以了,但是画出来的图不怎么好看。还是多谢大家了!
页: [1]
查看完整版本: 关于用coneplot画图