How to compare and combine two matrix

조회 수: 3 (최근 30일)
Ville Koivunen
Ville Koivunen 2019년 3월 20일
댓글: Ville Koivunen 2019년 3월 21일
Hello
I'm new into matlab and could'nt find help to my problem.
I have two large dataset that I want to combine so that each line corresponds to right value. In my dataset every line has a unique id (matrix column 1) and i want to find the lines with same id in a two different dataset and combine them into one.
So:
How can I do a loop that compares a value in two different matrix and then writes the result as a new. The value that is compared is written only once in outcome.
Lets say I have matrix A1 and A2 and I want a loop that compares if the values in first row are the same in A1 and A2. If this happen it combines the lines to a new variable. So in this case I would compare the first value in first column --> in line 2 and line 4 the first number match--> Result is the lines added without the first column in variable 2.
A1 =
3 3 5 3
8 1 5 2
6 4 5 6
7 4 7 1
A2 =
6 3 5
8 4 3
9 7 9
7 5 1
Outcome A3=
8 1 5 2 4 3
7 4 7 1 5 1
I have a code already that compares the value but how to generate the matrix A3 in a loop.
[m,n] = size(A1);
for i = 1:n
if isequal (A1(1,i),A2(1,i));
B(i,:)=[A1(i,:),A2(i,:)];
end
end
B
Cheers

채택된 답변

madhan ravi
madhan ravi 2019년 3월 20일
idx=A1(:,1)==A2(:,1);
A3=[A1(idx,:),A2(idx,2:end)]
  댓글 수: 9
madhan ravi
madhan ravi 2019년 3월 21일
편집: madhan ravi 2019년 3월 21일
[ ii, lo ] = ismember( A1(:,1), A2(:,1) );
A3 = [ A1, A2( lo(ii), 2:end ) ]
Ville Koivunen
Ville Koivunen 2019년 3월 21일
Oh yes, now it works Thank you sir

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Numeric Types에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by