永发信息网

matlab两条代码求解

答案:2  悬赏:80  手机版
解决时间 2021-02-14 09:25
  • 提问者网友:别再叽里呱啦
  • 2021-02-13 21:46
[x,y,z]=meshgrid(-25:25,-25:25,-25:25);
for a=1:10;%a取1到10的整数
pause(0.5)
v=( x.^2/a^2+y.^2/1^2+z.^2/1^2-50);
[d,m]=isosurface(x,y,z,v,0);
patch('faces',d,'vertices',m,'facevertexcData',jet(length(m)),'facecolor','k','edgecolor','flat');
view(3);axis equal;grid on;
% colorbar
title('x^2/a^2+y^2/b^2+z^2/c^2=d');
xlabel('X'),ylabel('Y'),zlabel('Z');
hold on
end

其中
[d,m]=isosurface(x,y,z,v,0);
patch('faces',d,'vertices',m,'facevertexcData',jet(length(m)),'facecolor','k','edgecolor','flat');
这两条能不能解释一下
最佳答案
  • 五星知识达人网友:过活
  • 2021-02-13 22:18
[d,m]=isosurface(x,y,z,v,0);
这是利用三维关系数据x,y,z,v,获得值为0等值面数据的命令
实际上直接用isosurface就可以画出等值面
但是那样不方便控制画图的颜色等属性
所以利用isosurface函数返回的参数,先获得等值面的数据
返回参数[d,m]是表示空间中三角形的面和定点的数据
三维空间的等值面是用一个个小三角形拼起来的

patch('faces',d,'vertices',m,'facevertexcData',jet(length(m)),'facecolor','k','edgecolor','flat');
patch是给空间中平面填上颜色的函数
将faces属性设置为d,vertices属性设置为m
就可以用patch将等值面的各个小三角形画出来了
后面的一些属性的设置是,设置画边缘和填充平面的颜色
全部回答
  • 1楼网友:孤独入客枕
  • 2021-02-13 22:56
不知楼主的两条直线是知道数据呢还是方程? 给力代码不是靠看得懂看不懂来评判的。而是运行效率才是第一位,简单明了是第二位。你网上找的,没有用到一个循环,执行效率必然你的好。是给力代码噢!  注:matlab忌讳循环。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯