比较值时的循环效率(-1,1 vs 1,2)

时间:2015-04-09 12:49:42

标签: matlab

我有一个函数将返回3个不同值中的一个:0,-1,1(或0,1,2)。

条件1比条件2更可能,条件2更可能不是条件为真,因此elseif

function [A] = example(...)
if condition1 == true
   A = 1;
elseif condition2 == true
   A = -1;
else
   A = 0;
end

我需要检查值A,当这样做时,查看A是正还是负,还是1或2更有效?

示例1:

if A > 0
   % Do something
elseif A < 0
   % Do something else
else
   % Do nothing
end

示例2:

 if A == 1
    % Do something
 elseif A == 2
    % Do something else
 else
    % Do nothing
 end

Witch示例将是最有效的循环方式吗?

1 个答案:

答案 0 :(得分:0)

我建议您过度优化代码,而且这两个选项几乎完全相同。如果您担心,为什么不设置实验来计算两个选项?您可以使用MATLAB内置的函数timeit来比较两种可能性。

除了比较(-1,1)和(1,2)之外,您还可以比较一下

if A == 1
    % Do something
elseif A == 2
    % Do something else
else
    % Do nothing
end

switch A
    case 1
    % Do something
    case 2
    % Do something else
    otherwise
end

我怀疑这会比(-1,1)vs(1,2)产生更大的差异,但仍然很少。