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
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
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