-1
這是我的代碼的Scilab存入數組[信道編碼]
e=0;
c=0;
n=10000;
for t=zeros(1:n)
//state1
x=rand();
if(x<=0.95) then disp(t);
c=c+1;
elseif(x>0.95)
//state2
x=rand();
if(x<=0.99) then disp(t)
c=c+1;
//state3
elseif(x>0.99) then disp(t=1)
e=e+1;
arr(e)=t; //store error bits only
end
end
end
disp(c);
disp(e);
for z=1:e //loop the earlier arr(s)
disp(arr(z)) //display all arr of s
end
clear();
部分是什麼,我試圖做的是產生零10000。 在這10000個零中,將會出現很少錯誤,例如我可能會得到9990個零和10個零。我現在做了一個只存儲數組的數組。現在我迷惑了,我該如何將零和零存儲到同一個數組中。
讓我們說,當前運行..我將以10個(包含錯誤位的零)結束。然後在這部分代碼中,所有變成1的零將被存儲到arr(e)中。因此,輸出將是
0
0
0
0
0
0
0
0
0
0
但我想要的是這樣的。
arr[1] = 0
.
.
.
arr[250] = 1
.
.
.
arr[749] = 1
.
.
.
arr[1234] = 1
.
.
.
arr[5463] = 1
.
.
.
arr[6678] = 1
.
.
.
arr[8890] = 1
.
.
.
arr[9987] = 1
.
.
.
arr[10000] = 0
這顯示了錯誤位出現在250,749,1234,5463,6678,8890,9987
謝謝
但250,749,1234,5463,6678,8890,9987陣列只是一個隨機的位置..下一次當我再次運行的代碼..數組的位置可能是不同的 – MkLim
那麼...確保這些位置存儲在'e' ....然後執行上面的代碼。你說你有位置,它們存儲在'e'中....所以....使用'e'和索引到'arr'中。但是,您正在生成位置,請確保它們存儲在「e」中。你想讓我解釋一下多簡單? – rayryeng