作业帮 > 综合 > 作业

matlab 用三矩阵画三维图形,求救

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 04:47:42
matlab 用三矩阵画三维图形,求救
自己要做一个课程设计,因为自学MATLAB,好多东西不懂,感激不尽...就是最佳答案.
for theta=0:0.1:2*pi;
x=cos(theta);
for alpha=0:0.05:pi;
y=cos(alpha);
e=-exp(i*theta);
A=[3*x -2*y 0 0 0 0 0 0 0 0 -1 0
-2*y 3*x -1 0 0 0 0 0 0 0 0 0
0 -1 2*x -1 0 0 0 0 0 0 0 0
0 0 -1 3*x -1 -1 0 0 0 0 0 0
0 0 0 -1 3*x 0 -1 -1 0 0 0 0
0 0 0 -1 0 3*x 0 0 -1 -1 0 0
0 0 0 0 -1 0 2*x 0 0 0 0 e
0 0 0 0 -1 0 0 x 0 0 0 0
0 0 0 0 0 -1 0 0 x 0 0 0
0 0 0 0 0 -1 0 0 0 x 0 0
-1 0 0 0 0 0 0 0 0 0 e 0
0 0 0 0 0 0 -1 0 0 0 0 1];
C=[1 0 0 0 0 0 0 0 0 0 e 0]';
B=inv(A)*C;
tao=abs(B(12,1));
end
T=tao^2;
end
以上是我自己遍的...是想说算出个T.然后用T theta alpha 三矩阵用matlab里面的三维做图画出图形.
但输出后,发现workspace里的T只是一个运行到最后的结果`只有一个数值
而不是一个矩阵...不知道该怎么改程序,才能让T所算的数值形成一个矩阵.(莫非是我的FOR语句用的不对?)(当我不用;的时候我可以看到T所算出的来每一个值.)
而且我发现好象三矩阵不是同行同列,用mesh也会出错,显示不了.不知道用矩阵做三维面图,是不是对矩阵之间有什么要求.
最后,帮我完善一下这个程序,能画出以theta alpha为底.
T为高的三维图形.
把程序弄通了
clear;clc;
theta=0:0.1:2*pi;
alpha=0:0.05:pi;
x=cos(theta);
y=cos(alpha);
e=-exp(i*theta);
for k=1:length(x)
A=[3*x(k) -2*y(k) 0 0 0 0 0 0 0 0 -1 0;
-2*y(k) 3*x(k) -1 0 0 0 0 0 0 0 0 0;
0 -1 2*x(k) -1 0 0 0 0 0 0 0 0;
0 0 -1 3*x(k) -1 -1 0 0 0 0 0 0;
0 0 0 -1 3*x(k) 0 -1 -1 0 0 0 0 ;
0 0 0 -1 0 3*x(k) 0 0 -1 -1 0 0 ;
0 0 0 0 -1 0 2*x(k) 0 0 0 0 e(k) ;
0 0 0 0 -1 0 0 x(k) 0 0 0 0 ;
0 0 0 0 0 -1 0 0 x(k) 0 0 0 ;
0 0 0 0 0 -1 0 0 0 x(k) 0 0 ;
-1 0 0 0 0 0 0 0 0 0 e(k) 0 ;
0 0 0 0 0 0 -1 0 0 0 0 1];
C=[1 0 0 0 0 0 0 0 0 0 e(k) 0]';
B=inv(A)*C;
tao=abs(B(12,1));
T(k)=tao^2;
end
plot3(theta,alpha,T)
xlabel('theta'),ylabel('alpha'),zlabel('T')
grid
view(-10,30)
或者3D的
clear;clc;
theta=meshgrid(0:0.1:2*pi);
alpha=meshgrid(0:0.05:pi);
x=cos(theta);
y=cos(alpha);
e=-exp(i*theta);
for i=1:length(x)
for k=1:length(x)
A=[3*x(i,k) -2*y(i,k) 0 0 0 0 0 0 0 0 -1 0;
-2*y(i,k) 3*x(i,k) -1 0 0 0 0 0 0 0 0 0;
0 -1 2*x(i,k) -1 0 0 0 0 0 0 0 0;
0 0 -1 3*x(i,k) -1 -1 0 0 0 0 0 0;
0 0 0 -1 3*x(i,k) 0 -1 -1 0 0 0 0 ;
0 0 0 -1 0 3*x(i,k) 0 0 -1 -1 0 0 ;
0 0 0 0 -1 0 2*x(i,k) 0 0 0 0 e(i,k) ;
0 0 0 0 -1 0 0 x(i,k) 0 0 0 0 ;
0 0 0 0 0 -1 0 0 x(i,k) 0 0 0 ;
0 0 0 0 0 -1 0 0 0 x(i,k) 0 0 ;
-1 0 0 0 0 0 0 0 0 0 e(i,k) 0 ;
0 0 0 0 0 0 -1 0 0 0 0 1];
C=[1 0 0 0 0 0 0 0 0 0 e(i,k) 0]';
B=inv(A)*C;
tao(i,k)=abs(B(12,1));
T(i,k)=tao(i,k).^2;
end
end
surf(T)
xlabel('theta'),ylabel('alpha'),zlabel('T')
grid on
view(-20,30)