2015-04-07 3 views
-1

Cela fait partie de mes codesScilab Stockage tableau dans [Le codage de canal]

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(); 

Ce que je tentais de faire est de générer 10 000 de zéros. Sur ces 10000 zéros, il y en aura peu avec des erreurs signifiant par exemple que je pourrais avoir 9990 de zéros et 10 de uns.

Actuellement, j'ai fait un tableau en stockant seulement ceux. Maintenant, je suis perdu sur comment stocker les zéros et les uns dans le même tableau. Par exemple, courant courant ... Je finirai par 10 de ceux (ces zéros qui contiennent le bit d'erreur). Alors à cette partie du code, tous les zéros qui ont été transformés en uns seront stockés dans arr (e). Par conséquent, la sortie serait

0 
0 
0 
0 
0 
0 
0 
0 
0 
0 

Mais ce que je voulais, c'est quelque chose comme ça.

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  

Ce qui montre l'erreur se produit à peu 250,749,1234,5463,6678,8890,9987

Merci

Répondre

2

Tout ce que vous avez à faire est:

e = [250 759 1234 5463 6678 8890 9987]; 
arr = zeros(10000,1); 
arr(e) = 1; 

e définit où vous voulez que les valeurs dans arr soient changées en 1. Vous utilisez simplement e pour indexer en arr et régler le correspo Trouver des positions à 1. Ça y est ... rien de vraiment!

+0

Mais le tableau à 250,749,1234,5463,6678,8890,9987 est juste un emplacement aléatoire .. le temps suivant quand je réexécute le code .. l'emplacement du tableau pourrait être différent – MkLim

+0

Eh bien ... assurez-vous que ces emplacements sont stockés dans 'e' .... alors faites le code ci-dessus. Vous avez dit que vous avez les emplacements et qu'ils sont stockés dans 'e' .... alors ... utilisez' e' et index dans 'arr'. Cependant, vous générez les emplacements, assurez-vous qu'ils sont stockés dans 'e'. Combien plus simple voulez-vous que je l'explique? – rayryeng