2016-08-29 7 views
0

Étant donné deux vecteurs de colonne, j'ai besoin de comparer chaque élément du vecteur a avec le premier élément du vecteur b dans la première itération et retourner un tableau logique. Alors le deuxième élément du vecteur b avec chaque élément du vecteur a et renvoie un tableau logique ainsi de suite. Le nombre de tableaux logiques est égal au nombre d'éléments dans le vecteur b.Octave compare deux tableaux

a=1:10; 
b=[5 6 7]; 
for j=1:length(b), 
for i=1:10, 
    c=b(j)==a(i); 
    end; 
end;  

ex: après la première itération du besoin de boucle interne pour revenir [0 0 0 0 1 0 0 0 0 0]

Répondre

2

essayez ceci:

a = 1:10 
b = [5 6 7] 
output = zeros(3,10); 
for i = 1:length(b) 
    output(i,:) = (a == b(:,i)) % b(:, i) meas using index get the value 
end 


output = 

    0 0 0 0 1 0 0 0 0 0 
    0 0 0 0 0 1 0 0 0 0 
    0 0 0 0 0 0 1 0 0 0 
+2

Si tel est le désiré sortie, il peut simplement faire 'output = a == b'' sans aucune boucle – Andy

+0

oui, c'est une meilleure façon de le faire, j'apprends quelque chose de nouveau de vous. :-) –