Clear Filters
Clear Filters

How to fill arrays third column by matching first 2 columns

3 views (last 30 days)
Dear all,
I have 2 arrays namely A & B.
A is 30 x 3 array with 3rd column zero.
B is 15 x 3 array with the result value in the 3rd column.
I want to fill the 3rd column of A by matching the first 2 columns with B.
for example,
A=[1 5 0;
1 12 0;
4 5 0;
4 9 0;
7 8 0;
8 2 0;
9 13 0];
B = [1 5 2740;
1 12 10;
8 2 1500;
7 8 750];
I want to get the array A's 3rd column filled with the values by comparing B.
results like,
A = [1 5 2740;
1 12 10;
4 5 0;
4 9 0;
7 8 750;
8 2 1500;
9 13 0];
Please suggest me a code for doing this for the larger size of array.
Thank you in advance.

Accepted Answer

KSSV
KSSV on 19 Oct 2022
A=[1 5 0;
1 12 0;
4 5 0;
4 9 0;
7 8 0;
8 2 0;
9 13 0];
B = [1 5 2740;
1 12 10;
8 2 1500;
7 8 750];
F = scatteredInterpolant(B(:,1),B(:,2),B(:,3)) ;
A(:,3) = F(A(:,1),A(:,2)) ;
A
A = 7×3
1.0e+03 * 0.0010 0.0050 2.7400 0.0010 0.0120 0.0100 0.0040 0.0050 1.9946 0.0040 0.0090 0.7700 0.0070 0.0080 0.7500 0.0080 0.0020 1.5000 0.0090 0.0130 -0.8471
  3 Comments
KSSV
KSSV on 19 Oct 2022
A=[1 5 0;
1 12 0;
4 5 0;
4 9 0;
7 8 0;
8 2 0;
9 13 0];
B = [1 5 2740;
1 12 10;
8 2 1500;
7 8 750];
[c,ia] = ismember(B(:,1:2),A(:,1:2),'rows','legacy') ;
A(ia,3) = B(:,3)
A = 7×3
1 5 2740 1 12 10 4 5 0 4 9 0 7 8 750 8 2 1500 9 13 0

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!