matlab程序,说矩阵维度不对应,哪里出错了for znum=1:length(z)wz(znum)=w0.*(1+(z0/z(znum))^2)^0.5;Rz(znum)=z(znum)*(1+(z0/z(znum))^2);Cz(znum)=1/tan(z(znum)/z0);for xnum=1:length(x)E(xnum,znum)=(E0*w0/wz)*exp(-(x(xnum)^2/wz^2))*exp(-1i*(k0
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 13:14:09
matlab程序,说矩阵维度不对应,哪里出错了for znum=1:length(z)wz(znum)=w0.*(1+(z0/z(znum))^2)^0.5;Rz(znum)=z(znum)*(1+(z0/z(znum))^2);Cz(znum)=1/tan(z(znum)/z0);for xnum=1:length(x)E(xnum,znum)=(E0*w0/wz)*exp(-(x(xnum)^2/wz^2))*exp(-1i*(k0
matlab程序,说矩阵维度不对应,哪里出错了
for znum=1:length(z)
wz(znum)=w0.*(1+(z0/z(znum))^2)^0.5;
Rz(znum)=z(znum)*(1+(z0/z(znum))^2);
Cz(znum)=1/tan(z(znum)/z0);
for xnum=1:length(x)
E(xnum,znum)=(E0*w0/wz)*exp(-(x(xnum)^2/wz^2))*exp(-1i*(k0*z(znum)+k0*(x(xnum)^2)/(2*Rz)-Cz));
end
end
matlab程序,说矩阵维度不对应,哪里出错了for znum=1:length(z)wz(znum)=w0.*(1+(z0/z(znum))^2)^0.5;Rz(znum)=z(znum)*(1+(z0/z(znum))^2);Cz(znum)=1/tan(z(znum)/z0);for xnum=1:length(x)E(xnum,znum)=(E0*w0/wz)*exp(-(x(xnum)^2/wz^2))*exp(-1i*(k0
"E(xnum,znum)=(E0*w0/wz)*exp(-(x(xnum)^2/wz^2))*exp(-1i*(k0*z(znum)+k0*(x(xnum)^2)/(2*Rz)-Cz));"
在第一层循环中,当znum>=2时,wz、Rz、Cz已经变为向量,而不是一个数.而在第二层循环中,矩阵E(xnum,znum)是一个数,此时维度就不对应了.
所以将wz、Rz、Cz换成wz(znum)、Rz(znum)、Cz(znum)