Combining two matrices using two criteria

1 回表示 (過去 30 日間)
Mido
Mido 2016 年 11 月 2 日
コメント済み: Image Analyst 2016 年 11 月 3 日
h = [1 4 11;
2 5 12;
4 7 13]
y = [1 4;
2 5;
3 6;
4 7]
I want for each row of matrix y to detect the first two elements in matrix h that are the same as matrix y and then copy the third element of the detected row in matrix h in a new third column in matrix y. The result should be
l = [1 4 11;
2 5 12;
3 6 0;
4 7 13]
I can't figure out the code for this.
  2 件のコメント
the cyclist
the cyclist 2016 年 11 月 2 日
Is this homework?
What have your tried?
Mido
Mido 2016 年 11 月 3 日
I am new to MATLAB and I have two large datasets with millions of observations. I want to combine them by transferrring some values from one matrix to another when the first two elements in each row are the same in both. After that, I will get the complete one like l matrix (The last matrix) in my example and then I can do analysis.

サインインしてコメントする。

採用された回答

KSSV
KSSV 2016 年 11 月 3 日
clc; clear all ;
h = [1 4 11;
2 5 12;
4 7 13] ;
y = [1 4;
2 5;
3 6;
4 7] ;
% check positions of h in y
[val,idx] = ismember(h(:,1:2),y,'rows','legacy') ;
% initilaize required matrix
iwant = zeros(size(y,1),3) ;
iwant(:,1:2) = y ;
iwant(idx,3) = h(:,3)
  2 件のコメント
Mido
Mido 2016 年 11 月 3 日
Thanks for you help again. I really appreciate if you recommend a book or a manual that I use to learn MATLAB.
Image Analyst
Image Analyst 2016 年 11 月 3 日

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by