2016-08-29 6 views
0

2つの列ベクトルが与えられた場合、最初の繰り返しでベクトルaの各要素とベクトルbの最初の要素を比較し、論理配列を返す必要があります。次に、ベクトルaの各要素を持つベクトルbの2番目の要素と論理配列を返します。論理配列の数は、ベクトルbの要素の数に等しい。Octave compare two arrays

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

を彼は単に出力= a == b''をループなしで行うことができます – Andy

+0

はい、これを行うより良い方法です、私はあなたから何か新しいことを学びます。 :-) –