matlab图像只出现空白坐标轴,没有曲线

clcclearcloseallRp=10^6;%P1到P2的数据速率n0=4*10^(-21);%噪声功率谱密度w1=10^6;Ep=0;Ep=10^((Ep-30)/... clc
clear
close all
Rp=10^6;%P1到P2的数据速率
n0=4*10^(-21);%噪声功率谱密度
w1=10^6;
Ep=0;
Ep=10^((Ep-30)/10); % Covert dBm to Watt
db1p2=500;%B1到P2的链路距离·
dp1p2=1000;%P1到P2的链路距离
c=3*10^8;
f1=2.1*10^9;%RAT1频率
L1=c/f1;%计算载波波长
tb1p2=(L1/(4*pi*db1p2))^2;
tp1p2=(L1/(4*pi*dp1p2))^2;
tao=0.01;
a=0.2;
temp=2^(2*Rp/(a*w1))-1;
%Es=-10
for Es=-100:1:-50
Es=10^((Es-30)/10)
b1=1-exp(-n0*temp/(Es*tb1p2))...
-(exp(-n0*temp/(Es*tb1p2))-exp(-n0*temp/(Ep*tp1p2)))...
/(Es*tb1p2/(Ep*tp1p2)-1)
end
Es
b1
semilogy(b1,Es);
plot(b1,Es);
set(handles,'ytick',0:10000:lnf) % handles可以指定具体坐标轴的句柄
ylabel('Es')
展开
 我来答
hqxz556
2017-07-07 · TA获得超过2831个赞
知道大有可为答主
回答量:1686
采纳率:93%
帮助的人:580万
展开全部

因为你虽然算了很多值,但都没有存起来。最后画图的时候 b1, Es 都是一个数,最多只能画一个点。

你这种情况不需要循环,把循环那改成:

Es=10.^(((-100:1:-50)-30)/10);
b1=1-exp(-n0*temp./(Es*tb1p2))...
    -(exp(-n0*temp./(Es*tb1p2))-exp(-n0*temp./(Ep*tp1p2)))...
    ./(Es*tb1p2./(Ep*tp1p2)-1);

就可以画图了,不过你画图那里还有些其它问题。

想画 y 轴为对数坐标的图,就用:

handles = semilogy(b1,Es);

想画普通坐标的就用:

handles = plot(b1,Es);

两个都用后面画的就会把前面画的覆盖掉,没意义。


这样给 handles 赋值,后面可以用来设置画图的属性。但

set(handles,'ytick',0:10000:lnf) % handles可以指定具体坐标轴的句柄

这个语句有问题,如果不是很熟的话,可以画好图之后自己点那个图,再一点点调整属性,不用写在程序里。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式