登录论坛

查看完整版本 : [求助]大家帮我找找这个程序的错啊,谢谢!


susu0918
2008-03-18, 10:51
b1=[-380,0,0]';b2=[-150,-350,0]';b3=[150,-350,0]';b4=[194,129,-20]';b5=[-194,129,-20]';b6=[0,-241,-20]';

syms m1 m2 m3 m4 m5 m6;
c1=[m1-680,0,0]';c2=[-150,m2-650,0]';
c3=[150,m3-650,0]';c4=[194,129,m4-320]';
c5=[-194,129,m5-320]';c6=[0,-241,m6-320]';

a1=[-880,0,0]';a2=[-150,-850,0]';
a3=[150,-850,0]';a4=[194,129,-520]';
a5=[-194,129,-520]';a6=[0,-241,-520]';

a=pi/9;b=0;c=0;
R1=[cos(a),-sin(a),0;sin(a),cos(a),0;0,0,1];
R2=[cos(b),0,sin(b);0,1,0;-sin(b),0,cos(b)];
R3=[1,0,0;0,cos(c),-sin(c);0,sin(c),cos(c)];
R=R1*R2*R3;

X=-75:15:75;Y=-75:15:75;Z=0;
for i=1:11
for j=1:11
P=[X(i),Y(j),0]';
B1=R*b1+P;
d1=B1-c1;
d1'*d1==300*300;

f1=-d1/300;
g1=a1-c1;
h1=g1/sqrt(g1'*g1);
p1=acos(f1'*(R*h1));
q1=acos(f1'*h1);

if p1>=0 & p1<=0.21*pi
q1>=0 & q1<=0.21*pi
abs(m1)<=75
plot(X,Y)
end
end
end

dnping
2008-03-18, 11:34
请将错误信息贴出来……谢谢……

susu0918
2008-03-18, 11:37
??? Error using ==> >=
Function '>=' is not defined for values of class 'sym'

是自定义的变量不能用大于等于号吗?
应该怎么改正?
谢谢了!

shiqiang
2008-03-18, 11:44
我觉得你的这个程序很奇怪,是全部的程序,还是你选取的一部分呀,
1
if p1>=0 & p1<=0.21*pi
q1>=0 & q1<=0.21*pi
abs(m1)<=75
m1没有赋值,只是一个符号变量,求其绝对值?????
2
for i=1:11
for j=1:11
P=[X(i),Y(j),0]';
B1=R*b1+P;
d1=B1-c1;
d1'*d1==300*300;
最后这一条程序,是一个判断,怎么没有把它放在if while的环境中????
3
syms m1 m2 m3 m4 m5 m6;
c1=[m1-680,0,0]';c2=[-150,m2-650,0]';
c3=[150,m3-650,0]';c4=[194,129,m4-320]';
c5=[-194,129,m5-320]';c6=[0,-241,m6-320]';
这里的" ' " 是求其转置矩阵么???
如果m1 m2 m3 m4 m5 m6 只是符号变量的话,这样求出的矩阵不是它的转置矩阵,而是相应的共轭复数矩阵的转置,应该是用transpose

susu0918
2008-03-18, 15:43
上面大虾说的很有道理,万分感谢!
1 这个程序的本意是打印出x,y和z。x,y范围都是[-75,75],z是常数
2 然后x和y有一些约束条件
请问这样的程序该如何编啊?

shiqiang
2008-03-18, 16:38
有点晕,没看明白,仔细说一下好吗?