PDA

查看完整版本 : [MATLAB基础] 程序运行出错 求大虾解决


zzh320924
2011-03-19, 20:38
程序运行后出现如下错误: ??? Error using ==> times
Matrix dimensions must agree.

Error in ==> array11 at 32
Y1=j*(n-1).*2*pi*d2.*cos(theta)

源程序:

theta=0:pi/1000:2*pi;
y2=0;
d1=rod(b,c,N);
d2=d+d1;

for n=1:N
Y1=j*(n-1).*2*pi*d2.*cos(theta);
Y= exp(Y1);
y2 = Y(n)+(y2);
end
y2=y2/max(y2);
polar(theta,abs(y2),'g')

其中b=0.1, c=0.2,N=4,d=0.5

rod function 如下:
function op=rod(b,c,N)
op=b+(c-b).*rand(1,N)



d1 是4个0.1到0.2之间的随机数,d2=d+d1这里我认为应该写 d2=(d1).+d;但不知为啥出错 另外程序运行的错误请求帮看看是哪有问题 谢谢!

anbcjys
2011-03-20, 06:35
d2.*cos(theta)这个 看看两项分别多少个

zzh320924
2011-03-20, 21:56
先修改如下:for n=1:N
Y1=cos(theta).*j*(n-1)*2*pi*d2(n);
Y= exp(Y1);
y2 = Y(n)+y2;
end
y2=y2/max(y2);
y2=abs(y2)
polar(theta,y2,'g')


运行后出现: Error using ==> polar
THETA and RHO must be the same size.
Error in ==> array11 at 38
polar(theta,y2,'g')


不知是哪里 求解答

yhcode
2011-03-21, 08:39
还是size的问题,看你的程序发现:
polar(theta,y2,'g') 中,y2应该是一个1*1的变量,也就是标量,而theta是一个向量,不同维。

zzh320924
2011-03-21, 11:09
请问一下 如何修改 因为我求y2公式中也有cos(theta) 感激不尽