在给定一定条件下选择矩阵行的最快方法

时间:2017-04-15 19:19:38

标签: matlab

在Matlab中,我有一个2x3矩阵,A,就像这个:

A = [1 2 3; 4 5 6];

此矩阵在函数内定义,该函数采用参数T。我需要处理两种情况:

  1. T< 10
  2. T> = 10
  3. 如果用户输入了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脚本方面有点新手。有人能踢我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

您可以使用以下方法:

A((T>=10) + 1, :)