(菜鸟求救)特急!!!关于MATLAB编程

来源:百度知道 编辑:UC知道 时间:2024/06/02 07:59:59
function pushbutton1_Callback(hObject, eventdata, handles)
cla;
Lambda=500*1e-9;d=2*1e-3;z=1;
yMax=5*Lambda*z/d;xs=yMax;
Phi1=0;Phi=0;
Ny=101;ys=linspace(-yMax,yMax,Ny);
for i=1:Ny
L1=sqrt((ys(i)-d/2).^2+z^2);
L2=sqrt((ys(i)+d/2).^2+z^2);
N1=11;dL=linspace(-0.1,0.1,N1);
Lambda1=Lambda*(1+dL);
Phi1=2*pi*(L2-L1)./Lambda1;
B(i,:)=sum(4*cos(Phi1/2).^2)/N1;
NCLevels=255;
Br=(B/4.0)*NCLevels;
axes(handles.axes1);image(xs,ys,Br);
colormap(gray(NCLevels));
axes(handles.axes2);
plot(B(i,:),ys)
end
运行结果不出来,而且出现Error using ==> plot Vectors must be the same lengths.
plot(B(i,:),ys)应改为plot(B(:),ys)
如果按上面那样的话,有一个图正常显示,第二个图不显示。
请教应如何修改???

plot(B(i,:),ys)
B(i,:)和ys这两个数组长度不一样长 你仔细看下这两个数组大小分别是多少

你给这段程序里好像只有一个plot……

plot(B(i,:),ys)应改为plot(B(:),ys)
改过来在这一句前添加一句:figure

画图的向量大小一致