作者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)