Re: [問題]跑for迴圈卡住不動

看板MATLAB作者 (談無慾)時間11年前 (2013/01/10 23:25), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

01/10 23:28, , 1F
所以只要做1000*1000的矩陣就可以了(?)
01/10 23:28, 1F

01/10 23:31, , 2F
我在我原先的問題加上註解囉 for開始的第一個if我想要產生
01/10 23:31, 2F

01/10 23:32, , 3F
隨機的輸入x 值為1或-1
01/10 23:32, 3F

01/10 23:36, , 4F
y(y)這個方式我沒有用過@0@ 學到新東西了!
01/10 23:36, 4F

01/10 23:37, , 5F
你可以丟丟看 其實這樣就只是把符合你條件的改成那個值
01/10 23:37, 5F

01/10 23:39, , 6F
那不如直接做10010*1000陣列
01/10 23:39, 6F
※ 編輯: MOONY135 來自: 114.34.32.75 (01/11 00:00)
文章代碼(AID): #1GxjrjLh (MATLAB)
文章代碼(AID): #1GxjrjLh (MATLAB)