请问有大神知道这个matlab程序为什么出错吗,写的是错误使用.*,我去掉.的话就显示错误使用*

请问有大神知道这个matlab程序为什么出错吗,写的是错误使用.*,我去掉.的话就显示错误使用*t=linspace(0,360,701);x=20*cos(2*t*pi... 请问有大神知道这个matlab程序为什么出错吗,写的是错误使用.*,我去掉.的话就显示错误使用*t=linspace(0,360,701);
x=20*cos(2*t*pi/180)+20;
y=40*cos(t*pi/180)+40;
zx=diff(x);
plot(Vx);

zy=diff(y);

plot(x,y);
x2=x;
y2=y;
e=8;
r0=70;
rr=5;
s0=sqrt(r0*r0-e*e);
t=1:1:361;
s1=sin(2.*pi.*t./360);
c1=cos(2.*pi.*t./360);

x1=(s0+x2).*s1+e.*c1;
y1=(s0+x2).*c1-e.*s1;
dx1=(zx-e).*s1+(s0+x2).*c1;
dy1=(zx-e).*c1-(s0+x2).*s1;
s11=dx1./sqrt(dx1^2.+dy1.^2);
c11=-dy1./sqrt(dx1.^2+dy1.^2);
xx1=x1-rr*c11;
yy1=y1-rr*s11;

figure(5);
plot(x1,y1);
hold on;
plot(xx1,yy1);
title('x-Cam');

x12=(s0+x2).*s1+e.*c1;
y12=(s0+x2).*c1-e.*s1;
dx2=(zy-e).*s1+(s0+y2).*c1;
dy2=(zy-e).*c1-(s0+y2).*s1;
s22=dx1./sqrt(dx2^2.+dy2.^2);
c22=-dy1./sqrt(dx2.^2+dy2.^2);
xx2=x12-rr*c22;
yy2=y12-rr*s22;

figure(6);
plot(x12,y12);
hold on;
plot(xx2,yy2);
title('y-Cam');
帮我解决了可以QQ或者微信小红包
展开
 我来答
lhmhz
高粉答主

2018-06-24 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17008

向TA提问 私信TA
展开全部

经检查 x1=(s0+x2).*s1+e.*c1,y1=(s0+x2).*c1-e.*s1  中s0与x2的维数不一致,而导致错误。主要是t的等分数太多了,可以改为361。(即t=linspace(0,360,361))

其他问题,由于求x,y的导数(差分)后,数据长度少一,所以要补一个0上去。(即zx=[0 diff(x)];   zy=[0 diff(y)]

修改后运行可以得到如下图形。

从图形上看,可能还有问题。

追问
对啊,我很奇怪为什么两个凸轮轮廓一样呢,我这个凸轮组合机构出的是一个抛物线,你觉得哪里有问题吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式