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) 展开
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) 展开
1个回答
展开全部
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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询