2016-08-29 278 views
0

給定兩個列向量,我需要在第一次迭代中比較向量a的每個元素與向量b的第一個元素並返回一個邏輯數組。然後向量b的第二個元素與向量a的每個元素並返回一個邏輯數組。邏輯數組的數量等於向量b中元素的數量。Octave比較兩個數組

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

例如: 的內環需要在第一次迭代之後返回[0 0 0 0 1 0 0 0 0 0]

回答

2

嘗試:

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

如果這是所期望的輸出他可以做'output = a == b''而沒有任何循環 – Andy

+0

是的,這是一個更好的方式來做到這一點,我從你身上學到了一些新東西。 :-) –