作业帮 > 综合 > 作业

matlab程序,说矩阵维度不对应,哪里出错了

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 05:44:48
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
"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)