
MATLAB在for语句中使用plot画图,画出来只有点不是线,输出的y在前面的语句中需要经过迭代,怎样保存y? 5
forSNR=0:1:15amp=1;tx_waveform=bpsk(u,amp);rx_waveform=awgn(tx_waveform,SNR);scale(1:...
for SNR=0:1:15
amp=1;
tx_waveform=bpsk(u,amp);
rx_waveform=awgn(tx_waveform,SNR);
scale(1:length(u))=1; %No fading.
%LDPC译码
[uhat, vhat]=ldpc_decode(rx_waveform,SNR,amp,scale,H,rearranged_cols);
errmax=find(s~=uhat);
nerr=length(errmax)
BER=nerr/(cols-rows)%这里的BER在调用别的函数时需要经过迭代,请问要怎么保存BER每次的结果最后画出来呢?我之前用了i=0:16,打算把数据存到一个新的BERBER[]数组中,但是最后输出的BERBER数组中全变成0了。请问有方法可以保存下来吗?或者有没有别的方法直接把点连成线
%LDPC性能图
plot(SNR,BER,'-ro')
set(gca,'Yscale','log');
hold on
end
感谢解答!!!!!!!! 展开
amp=1;
tx_waveform=bpsk(u,amp);
rx_waveform=awgn(tx_waveform,SNR);
scale(1:length(u))=1; %No fading.
%LDPC译码
[uhat, vhat]=ldpc_decode(rx_waveform,SNR,amp,scale,H,rearranged_cols);
errmax=find(s~=uhat);
nerr=length(errmax)
BER=nerr/(cols-rows)%这里的BER在调用别的函数时需要经过迭代,请问要怎么保存BER每次的结果最后画出来呢?我之前用了i=0:16,打算把数据存到一个新的BERBER[]数组中,但是最后输出的BERBER数组中全变成0了。请问有方法可以保存下来吗?或者有没有别的方法直接把点连成线
%LDPC性能图
plot(SNR,BER,'-ro')
set(gca,'Yscale','log');
hold on
end
感谢解答!!!!!!!! 展开
1个回答
展开全部
在for语句中使用plot画图,画出来是只有点。
因为plot(SNR,BER,'-ro')中的BER变量为单一数值。所以如想绘画出直线段的话,则应考虑数值变量,即BER变量为一数组变量。
因此,题主的代码应作如下改动:
1、for循环语句头改动,即为
for i=0:1:15
2、BER=nerr/(cols-rows)代码改动,即为
BER(i)=nerr/(cols-rows)
3、plot函数位置改动,放在for循环语句外,即
。。。
end
%LDPC性能图
plot(SNR,BER,'-ro')
set(gca,'Yscale','log');
hold on
追问
追答
应这样改:
SNR=[-4:0.5:12]
for i=1:length(SNR)
。。。
end
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询