为什么21行出现错误,看不出来是哪里出错了,修改不了


% 已知参数
fs = 44100;     % 采样率
bw = 1;      % 样本带宽
T = 0.2;        % 样本时间

% 生成样本信号
t = 1:0.1:100;     % 生成时间序列
f0 = 1000;                      % 单频信号频率
x = sin(2 * pi * f0 * t);       % 生成单频信号
SNR=0;%信噪比
xn=awgn(x,SNR);
% 矢量水听器方位估计
theta = linspace(-90, 90, 180); % 方位角范围
L = length(theta);              % 方位角数目
P = zeros(1, L);                % 存储似然函数值
for k = 1:L
    % 生成方向特性
    d = exp(1i * 2 * pi * bw * sin(theta(k) / 180 * pi) / fs * (0:fs * T - 1));
    
    % 计算似然函数
    P(k) = abs(d .* xn).^2;
end

% 取最大似然估计值作为目标方位角
[~, idx] = max(P);
target_theta = theta(idx);

disp(['目标方位角估计值为:', num2str(target_theta), ' 度']);

Untitled
矩阵维度必须一致。

出错 Untitled (line 21)
P(k) = abs(d .* xn).^2;
应该怎么修改呢

看下d和xn的shape

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 文章:解决前端页面中文乱码问题 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: 在拓扑优化中的灵敏度滤波和密度滤波有什么区别?中的 密度滤波 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    %% MATERIAL PROPERTIES 材料属性
    nelx=300;nely=100;volfrac=0.5;penal=3;rmin=2.1;ft=1;
    E0 = 1;
    Emin = 1e-9;
    nu = 0.3;
    

    Result

    Fig.1 x设计变量结果
    Fig.2 xPhys设计变量结果
    此时求得的目标柔度值为
     It.:  100 Obj.:   198.1180 Vol.:  0.500 ch.:  0.200
    

    这两种滤波方式所得到的结果稍有不同,但他们最终的结果是一样的,我的猜测是,密度滤波的收敛速度更慢一点。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^