在MATLAB中,如果要使用数组,要不要提前定义啊???
就是写程序的时候,那些数组要不要提前定义啊~~还有啊~~帮我看看这个有什么问题啊?SNR_dB=[-3:1:8];SNR_len=length(SNR_dB);N=inp...
就是写程序的时候,那些数组要不要提前定义啊~~
还有啊~~帮我看看这个有什么问题啊?
SNR_dB= [-3:1:8];
SNR_len=length(SNR_dB);
N=input('Enter the value on N:');
for i=1:SNR_len;
SNR(i)=10^(SNR_dB(i)/10);
noise_std(i)=sqrt((1/2*1/SNR(i)));
Error_count=0;
for j=1:N;
d=round(rand(1,N));
if d(j)==0
x(j)=-1;
else
x(j)=1;
end
noise=noise_std*randn(1,N);
y(j)=noise(j)+x(j);
if y(j)>0
dd(j)=1;
else
dd(j)=0;
end
error(j)=abs(d(j)-dd(j));
if error(j)~=0
Error_count=Error_count+1;
end
end
BER_estimate=Error_count/N;
BER_theoretical=0.5*erfc(sqrt(SNR));
end
semilogx(SNR_dB,BER_estimate,'b-');hold on;
semilogx(SNR_dB,BER_theoretical,'b-'); 展开
还有啊~~帮我看看这个有什么问题啊?
SNR_dB= [-3:1:8];
SNR_len=length(SNR_dB);
N=input('Enter the value on N:');
for i=1:SNR_len;
SNR(i)=10^(SNR_dB(i)/10);
noise_std(i)=sqrt((1/2*1/SNR(i)));
Error_count=0;
for j=1:N;
d=round(rand(1,N));
if d(j)==0
x(j)=-1;
else
x(j)=1;
end
noise=noise_std*randn(1,N);
y(j)=noise(j)+x(j);
if y(j)>0
dd(j)=1;
else
dd(j)=0;
end
error(j)=abs(d(j)-dd(j));
if error(j)~=0
Error_count=Error_count+1;
end
end
BER_estimate=Error_count/N;
BER_theoretical=0.5*erfc(sqrt(SNR));
end
semilogx(SNR_dB,BER_estimate,'b-');hold on;
semilogx(SNR_dB,BER_theoretical,'b-'); 展开
3个回答
展开全部
最好定义一下,以免未初始化时报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
You don't have to predefine the array or matrix. But if they will change the size in a loop, you'd better predefine them for the consideration of speed.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询