【发布时间】:2017-07-10 18:54:58
【问题描述】:
在 Matlab 中给定一个 12 x 13 矩阵,我需要每两行选择第 9 列中具有最大值的行,并创建一个包含所选行的矩阵。以下代码可以完成这项工作,但我想知道如何改进和缩短这种语法。
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];
谢谢。
【问题讨论】:
标签: matlab loops if-statement optimization syntax