声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2727|回复: 8

关于用coneplot画图

[复制链接]
发表于 2005-12-9 09:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想用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>
回复
分享到:

使用道具 举报

发表于 2005-12-9 15:35 | 显示全部楼层

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

U,V,W和meshgrid的格式一致
 楼主| 发表于 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帮助”里面的流场图。
发表于 2005-12-11 11:24 | 显示全部楼层

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

可以的啊,举个例子[x y z]=meshgrid(1:6,1:14,1:7)
 楼主| 发表于 2005-12-12 09:01 | 显示全部楼层
非常感谢,终于有人回应了!你说的是XYZ,可是UVW就不行了,这三个速度是测出来的,怎么生成跟XYZ一样维数的矩阵呢?用meshdrid好像不行。
发表于 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 编辑 ]
 楼主| 发表于 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>[X,Y,Z]=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([1,1,1]);<BR>xrange=linspace(xmin,xmax,1);<BR>yrange=linspace(ymin,ymax,1);<BR>zrange=linspace(zmin,zmax,1);<BR>[cx,cy,cz]=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,[xmin,xmax],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>
发表于 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>[X,Y,Z]=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>[X,Y,Z]=meshgrid(1:14,1:6,1:7);<BR><BR>看一下</P>
 楼主| 发表于 2005-12-13 10:50 | 显示全部楼层
好像可以了,但是画出来的图不怎么好看。还是多谢大家了!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-21 01:25 , Processed in 0.060621 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表