2016-04-19 17 views
1

行列の条件付きマージを容易にするOctave関数を検索しましたが、これまでのところはありません。私の目標は、ループを起こさずにベクトルを使ってこれを行うことです。ここに私がしようとしていることの例があります。Octave条件付き行列のマージ

A= [1 1 
    2 2 
    3 1 
    5 2]; 


B= [1 9 
    2 10]; 

私はABとカラム(複数可)に参加し、その後Cを生成するのリストを取る機能があります

C= [1 1 9 
    2 2 10 
    3 1 9 
    5 2 10]; 

としてCを取得したいと思いますか?

答えて

2

あなたはBの最初の列にAの2列の出現を検索し、Cを構築するためにBの2番目の列から特定のエントリをつかむためにそれを使用するsecond output of ismemberを使用することができます。

[~, inds] = ismember(A(:,2), B(:,1)); 
C = [A, B(inds,2)]; 

%// 1  1  9 
%// 2  2 10 
%// 3  1  9 
%// 5  2 10 
+0

ありがとうございます。これは完璧です。 – user3634351