Bonjour,
voici mon code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| n=10;
while i<=n
b=randint(1,i);
a=randint(1,i);
i=i+1;
end
psi=[];
for i=1:n
if ((a(i)==0)&(b(i)==0))
psi=ket([1 0]);
elseif ((a(i)==1)&(b(i)==0))
psi=ket([0 1]);
elseif ((a(i)==0)&(b(i)==1))
psi=ket([1 1]);
elseif ((a(i)==1)&(b(i)==1))
psi=ket([1 -1]);
end
disp(psi);
end |
Le problème si je fais ressortir "disp(psi)" de la boucle je n'aurai que la dernière valeur chose tout à fait logique seulement en corrigeant le code ainsi:
1 2 3 4 5 6 7 8 9 10 11 12 13
| for i=1:n
if ((a(i)==0)&(b(i)==0))
psi(i)=ket([1 0]);
elseif ((a(i)==1)&(b(i)==0))
psi(i)=ket([0 1]);
elseif ((a(i)==0)&(b(i)==1))
psi(i)=ket([1 1]);
elseif ((a(i)==1)&(b(i)==1))
psi(i)=ket([1 -1]);
end
end
disp(psi); |
J'ai l'erreur :??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Error in ==> progpsi at 18
psi(i)=ket([1 -1]);
Comment faire? sachant que par exemple ket([0 1]) est le vecteur [0;1]
En gros, j'ai pu contourner l'erreur mais ce n'est pas suffisant parce que ma variable psi ne pourra pas être utilisée hors de cette boucle.
Partager