for n=1:length(sitax)
B=[exp(-1j*2*pi/lmda*[0:N-1]*d*sin(sitax(n)))]'; %这里如果d是一个数,后面就都不用改,但这d是一个数列,后面的大小就出问题了
pmu{n}=B'*B*inv(B'*en*B); %这里要存的内容是个8*8的矩阵,因此把被存的位置设为cell
end
pmu=cell2mat(pmu); %将变量由cell转为mat,下一步才能操作
pmusic=abs(pmu);
%但这样一来后面的图画不出来,估计是B的计算那一步或相关的地方有问题
如果将d=lmda/2;代入运行后的结果如图,你参考下
在出错那一步设置断点,运行暂停后把光标停留在需检查的变量名上查看当前值是否正确,不正确的话在将断点前移检查前面的步骤;当前的值都没问题的话,把接下来出错的一步在命令框中试算,按猜测+反复试+理解+查HELP去改。(不知道你会不会DEBUG,所以啰嗦一下,希望对你有帮助!)
矩阵pmu的维数你是如何定义的?错误的原因明显是B'*B*inv(B'*en*B)运算后的结果与pmu定义的维数不匹配。