matlab如何画三维向量场

希望整个场都画出来,在线等... 希望整个场都画出来,
在线等
展开
 我来答
lhmhz
高粉答主

2019-10-05 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17040

向TA提问 私信TA
展开全部

用matlab绘制三维向量场,可以使用quiver3函数来完成。如z = y^2 - x^2的三维向量场

x =-3:0.5:3;

y =-3:0.5:3;

[X,Y] = meshgrid(x, y);

Z = Y.^2 - X.^2;

[U,V,W] = surfnorm(Z);

figure(1)

quiver3(Z,U,V,W)

view(-35,45)

xlabel('x'),ylabel('y'),zlabel('z')

更多追问追答
追问
谢谢您的及时回答,
在MATLAB里面,
如果是一个二维网格,确实可以用quiver3命令画函数算出来的表面法向。但是我的数据是离散的。

但是我的三维矢量U(i,j,k),V(i,j,k),W(i,j,k)按照i,j,k下标存在r(i,jk)数组里面. 如何画出矢量场的图形?

maple里面能不能把plot3d,或者vectorplot命令直接转换成为MATLAB命令?
我调试程序经常需要来回转换
追答
如果数据是离散的,可以先考虑用拟合的方法求出其三维数学函数,然后再做矢量场的图形。

maple里面能不能把plot3d,或者vectorplot命令直接转换成为MATLAB命令?这个手上没有maple这个软件,所以不能确定。
真greatdju
2019-10-09 · TA获得超过3856个赞
知道小有建树答主
回答量:1300
采纳率:91%
帮助的人:790万
展开全部
quiver3本来就可以画三维的啊
n=20;
[x,y,z]=meshgrid(linspace(-1,1,n));
r=x.^2+y.^2+z.^2;
[vx,vy,vz]=gradient(r);
quiver3(x(r<1),y(r<1),z(r<1),vx(r<1),vy(r<1),vz(r<1))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式