jch029 2019-09-10 10:13 采纳率: 100%
浏览 1378

matlab中 错误使用 * 内部矩阵维度必须一致。 出错 tmmcoupling (line 49) F = F*ff;

clear all
clc
%======================================================================
% Fibre simulation parameters
lamdaD = 1.55e-6; %design wavelength
lamda1 = 0.999*lamdaD;
lamda2 = 1.001*lamdaD;
step = 500;
lambda = (lamda1:(lamda2-lamda1)/step:lamda2);
%======================================================================
%For a grating of maximun reflectance R = 0.2
Rmax = 0.2; %required maximum reflectivity
rmax = sqrt(Rmax);
kacL = atanh(rmax);
c = 3e8; %Speed of light
h = 25e-9;
t = linspace(0,1,2000);
z = linspace(0,3000e-6,2000);
v = 1;%Fringe visibilty
%======================================================================
%Implementation of the transfer matrix method for solution of
%coupled-mode equations
L = 3000e-6; %length of grating in micrometers
M = 100;
dz = L/M;
dzo = - L + 10.69e-3; %Distance between gratings
kac = kacL/L; %"AC" coupling coefficient
kdc = 2*kac/v; %"DC" coupling coefficient
neff = 1+v*cos(cos(t)+2*pi*z./dz); %core index of photosensitive fibre
for r = 1:step+1
w = lambda(r);
F = [1 0; 0 1];
for s = 1:M
det = 2*pi*neff*(1/w - 1/lamdaD);
gdc = det + kdc;
p1 = sqrt(kac.^2 - gdc.^2);
p2 = gdc.^2/kac.^2;
f11 = cosh(p1*dz) - 1i*(gdc./p1).*sinh(p1*dz);
f12 = -1i*(kac./p1).*sinh(p1.*dz);
f21 = 1i*(kac./p1).*sinh(p1*dz);
f22 = cosh(p1*dz) + 1i*(gdc/p1).*sinh(p1*dz);
ff = [f11 f12; f21 f22];
F = F*ff;
end
提示我矩阵内部维度不一致,但是中断for循环后语句没有问题,请问该如何修改

  • 写回答

1条回答 默认 最新

  • 关注
    评论

    报告相同问题?

    悬赏问题

    • ¥15 burpsuite密码爆破
    • ¥15 关于#ubuntu#的问题,如何解决?(相关搜索:移动硬盘)
    • ¥15 scikit安装之后import不了
    • ¥15 Ros2编译一个使用opencv的c++节点的时候,报了这个错误,请问怎么解决啊
    • ¥15 人脸识别相关算法 YOLO,AI等
    • ¥15 spark问题方便加V17675797079
    • ¥15 Python代码不打印的原因
    • ¥20 微软SEAL库的安装和使用,VS2022环境配置问题
    • ¥15 数学问题也不知道那种类型的问题
    • ¥15 R作图的时候,文本框重叠了怎么办?