作者MOONY135 (谈无慾)
看板MATLAB
标题Re: [问题]跑for回圈卡住不动
时间Thu Jan 10 23:25:30 2013
※ 引述《a055076 (Dilemma)》之铭言:
: 老师出了一个作业要做通讯错误率计算
: 当在bipolar signaling情况下 做输入1百万次的错误率分析
: 我的程式如下
: clear all;
: N0=1;
: a=N0^0.5;
: for i=1:100000
: y(i)=rand(1)*2-1;
: if y(i)>0
: x(i)=1;
: else
: x(i)=-1;
: end
: z(i)=a*randn+x(i);
: if z(i)>0
: d(i)=1;
: else
: d(i)=-1;
: end
: e(i)=x(i)-d(i);
: end
: count = sum(e ~=0);
如果这样哩
y=rand(1,10)*2-1;
y(y>0)=1;
y(y<0)=-1;
也可以这样玩
y=rand(3,3)*2-1;
y(y>0)=1;
y(y<0)=-1;
最後要把阵列加起来 其实用sum(sum(y))就可以了
你也可以测试一下这个
e(e==0)=[]; 直接把等於0的数砍掉
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.32.75
1F:→ MOONY135:所以只要做1000*1000的矩阵就可以了(?) 01/10 23:28
2F:推 a055076:我在我原先的问题加上注解罗 for开始的第一个if我想要产生 01/10 23:31
3F:→ a055076:随机的输入x 值为1或-1 01/10 23:32
4F:→ a055076:y(y)这个方式我没有用过@0@ 学到新东西了! 01/10 23:36
5F:→ MOONY135:你可以丢丢看 其实这样就只是把符合你条件的改成那个值 01/10 23:37
6F:→ MOONY135:那不如直接做10010*1000阵列 01/10 23:39
※ 编辑: MOONY135 来自: 114.34.32.75 (01/11 00:00)