How to input corresponding data from separate matrices

I have a matrix
A = [1 2 3 4 5 6 7 8 9 10] '
and
B = [ 2 3 1 7 9 10 4 6 5 8; 12 43 64 94 27 58 64 13 90 74]'
I am trying to make a script that reads the i-th value of matrix A and matches it to the same value in matrix B. Then take the corresponding value in matrix B from the same row (so for A(1,1) it will read B(3,1)) and take the value 64 from B(3,2) and put it in a separate column matrix.

 Akzeptierte Antwort

Voss
Voss am 6 Jan. 2023
Bearbeitet: Voss am 6 Jan. 2023
A = [1 2 3 4 5 6 7 8 9 10].';
B = [ 2 3 1 7 9 10 4 6 5 8; 12 43 64 94 27 58 64 13 90 74].';
[ism,idx] = ismember(A,B(:,1));
C = B(idx(ism),2)
C = 10×1
64 12 43 64 90 13 94 74 27 58

Weitere Antworten (1)

Bora Eryilmaz
Bora Eryilmaz am 5 Jan. 2023
Bearbeitet: Bora Eryilmaz am 5 Jan. 2023
A = [1 2 3 4 5 6 7 8 9 10]';
B = [ 2 3 1 7 9 10 4 6 5 8; 12 43 64 94 27 58 64 13 90 74]';
% Iterate over every element of A
N = numel(A(:));
C = zeros(N, 1); % Output column matrix
for i = 1:N
rowA = A(i);
rowB = find(B(:,1) == rowA) % Find row of B corresponding to the element of A
C(rowA) = B(rowB,2); % Rows of C match rows of A
%C(rowB) = B(rowB,2); % Rows of C match rows of B
end
rowB = 3
rowB = 1
rowB = 2
rowB = 7
rowB = 9
rowB = 8
rowB = 4
rowB = 10
rowB = 5
rowB = 6
C
C = 10×1
64 12 43 64 90 13 94 74 27 58

Kategorien

Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2022b

Tags

Gefragt:

am 5 Jan. 2023

Bearbeitet:

am 6 Jan. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by