MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]大家帮我找找这个程序的错啊,谢谢! (https://www.labfans.com/bbs/showthread.php?t=1741)

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

有点晕,没看明白,仔细说一下好吗?


所有时间均为北京时间。现在的时间是 11:22

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.