matlab画二次曲面方程,谁能帮我解释一下这个代码?这是原题:这是两个代码,画出来的图好像不一样.也不知道哪个对哪个错. 第一个:A=input('A=');for i=1:4 figure(i) a=A(1,i); b=A(2,i); c=
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/04 15:07:02
matlab画二次曲面方程,谁能帮我解释一下这个代码?这是原题:这是两个代码,画出来的图好像不一样.也不知道哪个对哪个错. 第一个:A=input('A=');for i=1:4 figure(i) a=A(1,i); b=A(2,i); c=
matlab画二次曲面方程,谁能帮我解释一下这个代码?
这是原题:
这是两个代码,画出来的图好像不一样.也不知道哪个对哪个错.
第一个:
A=input('A=');
for i=1:4
figure(i)
a=A(1,i);
b=A(2,i);
c=A(3,i);
d=A(4,i);
[x,y,z]=meshgrid(linspace(-5,5,50));
f=@(x,y,z)x.^2/a^2+y.^2/b^2+z.^2/c^2-d;
val=f(x,y,z);
[p,v]=isosurface(x,y,z,val,0);
patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');
hold on;view(3);grid on;axis equal
end 第二个:
A=input('A=');
syms theta fai;
[theta,fai]=meshgrid(-pi:0.1:pi,0:0.1:pi);
for i=1:4
figure(i)
a=A(1,i);
b=A(2,i);
c=A(3,i);
d=A(4,i);
x=a/d*sin(fai).*cos(theta);
y=b/d*sin(fai).*sin(theta);
z=c/d*cos(fai);
mesh(x,y,z)
hold on;view(3);grid on;axis equal;
end
但是完全看不懂啊!我们要做实训报告,小妹在此跪谢!
matlab画二次曲面方程,谁能帮我解释一下这个代码?这是原题:这是两个代码,画出来的图好像不一样.也不知道哪个对哪个错. 第一个:A=input('A=');for i=1:4 figure(i) a=A(1,i); b=A(2,i); c=
第1个程序错了.
第二个我帮你改了一下.
A=input('A='); % 或者直接输数据 例如:A=[1 5 9 13; 2 6 10 14; 3 7 11 15; 4 8 12 16];
[theta,fai]=meshgrid(-pi:0.1:pi,0:0.1:pi);
for i=1:4
figure(i)
a=A(1,i);
b=A(2,i);
c=A(3,i);
d=A(4,i);
x=a/d*sin(fai).*cos(theta);
y=b/d*sin(fai).*sin(theta);
z=c/d*cos(fai);
mesh(x,y,z)
hold on;
view(3);
grid on;
axis equal;
end