回 帖 发 新 帖 刷新版面

主题:[讨论]求助高手,感激万分!

T=[2,4,6,8];
R=[2,4,6,8];
N=[2,4,6,8];
SNRindB=0:2:14;
SNR=10.^(SNRindB/10);
Number=100;
d=0.4;
sum=0;
for i=1:length(R)
  for a=1:R(i)
    for b=1:R(i)
      Rr(a,b)=besselj(0,2*pi*(a-b)*d);
    end
  end
       for a=1:T(i)
         for b=1:T(i)
           Rt(a,b)=besselj(0,2*pi*(a-b)*d);
         end
       end
 for s=1:length(SNR)
    for n=1:Number
            for o=1:R(i)
                for p=1:T(i)
                W(o,p)=normrnd(0,sqrt(0.5))+j*normrnd(0,sqrt(0.5));
               end
            end
          H=sqrtm(Rr)*W*sqrtm(Rt);
          S=H*H';
          A=inv(S);
          U=diag(A);
          C=0;
       for v=1:N(i)
       B=U(v) 
       r=SNR(s)/(N(i)*B);
           C=C+log2(1+r)
       end
      c(1,n)=C
      m=real(c)
       end
     f(i,s)=sum(m)/100
    end
end
plot(SNRindB,f)



运行上面代码,老是报错:???? Subscript indices must either be real positive integers or logicals
如果去掉sum(c)则不会出现这个错误,但是求和在这里是必须的,请高手指点,小弟感激万分!

回复列表 (共1个回复)

沙发


哈哈,我自己找到原因啦,把上面定义的sum=0去掉就行了。
感谢大家。

我来回复

您尚未登录,请登录后再回复。点此登录或注册