Angesichts einer 12 x 13 Matrix in Matlab, muss ich die Zeile mit dem größten Wert in Spalte 9 alle zwei Zeilen auswählen und eine Matrix erstellen, die die ausgewählten Zeilen enthält. Das folgende Stück Code macht den Job, aber ich frage mich, wie diese Syntax verbessert und verkürzt werden könnte.Wie kann die folgende Syntax gekürzt und verbessert werden?
A = rand(12,13);
a = A(1:2,:);
if a(1,9) > a(2,9)
a = A(1,:);
else
a = A(2,:);
end
b = A(3:4,:);
if b(1,9) > b(2,9)
b = A(3,:);
else
b = A(4,:);
end
c = A(5:6,:);
if c(1,9) > c(2,9)
c = A(5,:);
else
c = A(6,:);
end
d = A(7:8,:);
if d(1,9) > d(2,9)
d = A(7,:);
else
d = A(8,:);
end
e = A(9:10,:);
if e(1,9) > e(2,9)
e = A(9,:);
else
e = A(10,:);
end
f = A(11:12,:);
if f(1,9) > f(2,9)
f = A(11,:);
else
f = A(12,:);
end
SELECTED_A = [a;b;c;d;e;f];
Vielen Dank.
Das OP benötigt die _rows_, 'SELECTED_A' ist eine 6x13 Matrix. –
@ Jørgen du hast Recht, sorry. Ich werde es korrigieren. – Max
Kein Problem. 'max' gibt den Index als zweiten Rückgabewert zurück. Verwenden Sie das, um die gewünschte Zeile auszuwählen. –