Filter löschen
Filter löschen

How to fill arrays third column by matching first 2 columns

3 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

KSSV
KSSV am 19 Okt. 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 Kommentare
KSSV
KSSV am 19 Okt. 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
sastra university
sastra university am 19 Okt. 2022
Thank you so much. Its working.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by