Find values and positions of a matrix referring to another matrix
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ricardo Gutierrez
am 1 Okt. 2019
Kommentiert: Ricardo Gutierrez
am 1 Okt. 2019
Hi !!! Good day.
I hope you can help me
I have two matrices
A = [2 4 7];
B = [3 4 6
1 5 7
2 8 9
9 2 4];
From the first element of matrix A find position and value in the first column of matrix B
From the second element of matrix A find position and value in the second column of matrix B
From the third element of matrix A find position and value in the third column of matrix B
In the end I will have two vectors;
one with the values 2, 4, 7 and the other with the positions 3, 1, 2
In reality, matrix A is 1 X 18 and matrix B has 720 X 18
Thank you very much for your help.
Regards.
0 Kommentare
Akzeptierte Antwort
David Hill
am 1 Okt. 2019
for i=1:length(A)
C(i)=find(B(:,i)==A(i),1);%will there always be only one match?
end
Weitere Antworten (1)
Stephen23
am 1 Okt. 2019
Bearbeitet: Stephen23
am 1 Okt. 2019
This is MATLAB, so you should learn how to efficiently solve tasks like this without loops:
>> A = [2,4,7];
>> B = [3,4,6;1,5,7;2,8,9;9,2,4];
>> X = bsxfun(@eq,A,B); % or for >=R2016b simply X = A==B;
>> V = B(X)
V =
2
4
7
>> [R,~] = find(X)
R =
3
1
2
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!