在Matlab中,我有一个2x3矩阵,A,就像这个:
A = [1 2 3; 4 5 6];
此矩阵在函数内定义,该函数采用参数T
。我需要处理两种情况:
如果用户输入了T = 40,那么应选择A的第2行进行计算。另一方面,如果说T = 5,则应选择A的第一行。
我可以写一个简单的if-else条件:
if (T<10)
b = A(1,:) * ... %Do whatever with the first row
else
b = A(2,:) * ... %Do whatever with the second row
end
但是我想知道是否可以使用Matlab索引来节省自己在我的代码周围编写if-else条件的开销(这个条件必须多次检查,不同部分程序。)
例如,我希望达到像A(T<10, :)
这样的简单表达式,如果T&lt; 10但T&gt; = 10将返回,它将正常工作一个空矩阵。
我已经绞尽脑汁待了几个小时,但我在优化Matlab脚本方面有点新手。有人能踢我正确的方向吗?
答案 0 :(得分:3)
您可以使用以下方法:
A((T>=10) + 1, :)