BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #10001同步于 2013/5/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

绘图时矩阵不匹配

shouwang
2013/5/24镜像同步2 回复
我写了一个函数如下 function Pr_NDL = outage_pr_NDL( sys_snr,M,N,rho ) part=1; ps=1/2; %the transmit power of the selected sourse pr=1/2; %the transmit power of the selected relay h_sr=10^(10*2*log10(0.5*sqrt(2)))*ones(M,N); %channel coefficients from source to relay h_rd=10^(10*2*log10(0.5*sqrt(2)))*ones(1,N); %channel coefficients from relay to destination gamma_sr=sys_snr*ps*abs(h_sr).^2; %snr of the links from source to relay gamma_rd=sys_snr*pr*abs(h_rd).^2; %snr of the links from relay to destination lambda_sr=ones(M,N); lambda_rd=ones(1,N); for m=1:M; for n=1:N sum=0; for p=1:m for q=1:n sum=sum+gamma_sr(p,q); end end lambda_sr(m,n)=(m*n)/sum; end end for n=1:N sum=0; for p=1:n sum=sum+gamma_rd(p); end lambda_rd(n)=n/sum; end for n=1:N parta=1; for m=1:M parta=parta*(1-exp(-rho*lambda_sr(m,n))); end part=part*(1-exp(-rho*lambda_rd(n))+exp(-rho*lambda_rd(n))*parta); end Pr_NDL=part; end 我需要用这个函数画个图 >> sys=2:2:18 sys_snr=10.^sys plot(sys_snr,outage_pr_NDL(sys_snr,3,2,1)) 然后出现了以下错误 ?? Error using ==> mtimes Inner matrix dimensions must agree. Error in ==> outage_pr_NDL at 22 gamma_sr=sys_snr*ps*abs(h_sr).^2; %snr of the links from source to relay 可能这里我有点思维定式了,请各位帮忙看一下,怎么才能改过来? 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
yanglei5658机器人#1 · 2013/5/24
LZ的sys_snr是一个数组,而在函数中调用的时候,把他当成一个数来使用。 改成下面这样,就可以了: sys=2:2:18; sys_snr=10.^sys ; for i = 1:length(sys_snr) outage(i) = outage_pr_NDL(sys_snr(i),3,2,1); end semilogy(sys,outage) grid on 【 在 shouwang 的大作中提到: 】 : 我写了一个函数如下 : function Pr_NDL = outage_pr_NDL( sys_snr,M,N,rho ) : part=1; : ...................
shouwang机器人#2 · 2013/5/24
原来是这样,谢谢