Compare two matrices and select max one based on the a column

1 Ansicht (letzte 30 Tage)
I have two matrixes and I want to compare the last column. Then select the max one and the whole corresponding row.
For example
A = [ 1 , 4, 5; 1, 4, 6];
B = [2, 6, 6; 2, 5 , 9];
The next matrix based on the last column max will be
C = [2, 6, 6; 2, 5 , 9];
Anyway to help, please

Akzeptierte Antwort

Guillaume
Guillaume am 17 Mär. 2020
If I understood correctly:
C = A;
replacebyB = B(:, end) > A(:, end);
C(replacebyB, :) = B(replacebyB, :);
The above gives priority to A when the last columns are equal.

Weitere Antworten (1)

madhan ravi
madhan ravi am 17 Mär. 2020
  3 Kommentare
madhan ravi
madhan ravi am 17 Mär. 2020
Illustrate the answer if the B were to be
B = [2, 6, 4; 2, 5 , 9];
Yaser Khojah
Yaser Khojah am 17 Mär. 2020
Something like this without the forloop
C = zeros(size(A));
for i = 1:11
c = [A(i,:);B(i,:)];
[Max_v, idx] = max(c(:,end));
C(i,:) = c(idx,:);
end

Melden Sie sich an, um zu kommentieren.

Kategorien

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by