2016-08-29 9 views
0

Bei zwei Spaltenvektoren muss ich jedes Element des Vektors a mit dem ersten Element von Vektor b in der ersten Iteration vergleichen und ein logisches Array zurückgeben. Dann das zweite Element des Vektors b mit jedem Element des Vektors a und gebe so ein logisches Array zurück. Die Anzahl der logischen Arrays entspricht der Anzahl der Elemente in Vektor b.Oktav zwei Arrays vergleichen

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

ex: nach der ersten Iteration der inneren Schleife Notwendigkeit zurückzukehren [0 0 0 0 1 0 0 0 0 0]

Antwort

2

versuchen, dies:

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

Ist dies der gewünschte Ausgabe kann er einfach tun 'output = a == b'' ohne irgendeine Schleife – Andy

+0

ja, es ist ein besserer Weg, dies zu tun, ich lerne etwas Neues von dir. :-) –