返回信息流我写了一个函数如下
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
可能这里我有点思维定式了,请各位帮忙看一下,怎么才能改过来?
谢谢
这是一条镜像帖。来源:北邮人论坛 / matlab / #10001同步于 2013/5/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
绘图时矩阵不匹配
shouwang
2013/5/24镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
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;
: ...................