Matlab提示:.*错误使用,矩阵维度必须一致。请大神指教

clearclch=60;X0=5*pi/6;x1=0:0.01:5*pi/6;e=50;s0=150;r0=sqrt(e^2+s0^2);s1=h*(x1./X0-(s... clear
clc
h=60;
X0=5*pi/6;
x1=0:0.01:5*pi/6;
e=50;
s0=150;
r0=sqrt(e^2+s0^2);
s1=h*(x1./X0-(sin(2*pi*x1./X0)./(2*pi)));
x=-(s0+s1).*cos(x1)+e.*sin(x1);
y=(s0+s1).*sin(x1)+e.*cos(x1);
dx1=diff(x);
dy1=diff(y);
dx11=diff(x,2);
dy11=diff(y,2);
p=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));
hold on
plot(x1,p)
展开
 我来答
射手座lll
推荐于2017-09-25 · TA获得超过820个赞
知道小有建树答主
回答量:688
采纳率:88%
帮助的人:413万
展开全部
x和y都是262个数据,因为你的dx1和dy1做的是一阶差分,是262-1=261个数据,dx11,dy11又是二阶差分,数据量变成了262-2=260,而你用的点运算是对应元素的运算,元素数量不一样,肯定就不对了
追问
请问,除了减掉一部分数据应该如何改正呢?
追答
帮你改了一下  就是把dx1和dy1的最后一个数据删了想,x最后两个也删了,否则不能和p匹配

clc,clear;
h=60;
X0=5*pi/6;
x1=0:0.01:5*pi/6;
e=50;
s0=150;
r0=sqrt(e^2+s0^2);
s1=h*(x1./X0-(sin(2*pi*x1./X0)./(2*pi)));
x=-(s0+s1).*cos(x1)+e.*sin(x1);
y=(s0+s1).*sin(x1)+e.*cos(x1);
dx1=diff(x);
dy1=diff(y);
dx11=diff(x,2);
dy11=diff(y,2);

dx1=dx1(1:length(dx11));
dy1=dx1(1:length(dy11));

p=abs(sqrt((dx1.^2+dy1.^2).^3)./(dx1.*dy11-dy1.*dx11));
x1=x1(1:length(p));

plot(x1,p)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式