Matlab语法混乱

时间:2018-03-09 23:29:50

标签: arrays matlab

我有以下Matlab语法,我不明白它在做什么,尤其是xDiff == 2部分,它看起来像是一种奇怪的方式来引用tDiff数组中的特定值。有人可以建议吗?

tTacho = tDiff(xDiff == 2);

tDiff和xDiff是479999x1数组

由于

1 个答案:

答案 0 :(得分:3)

第一个操作xDiff==2返回一个逻辑数组,为您提供信息,xDiff中的位置等于2。然后它将此位置应用于第二个数组yDiff。也许这个简短的例子是肝脏(简化):

xDiff   = [0 0 2 2 0 0 0 0 2];    % simplified: only values 0 or 2
yDiff   = [1 2 3 4 5 6 7 8 9];   
tTacho  = [    3 4         9];
tTacho2 = yDiff(xDiff==2);

在此示例中,tTachotTacho2相同。我们基本上在做什么:xDiff中的第3,第4和第9位等于2,因此我们取yDiff的第3,第4和第9位置的值并存储它们在新数组tTacho中。请注意tTacho的长度取决于xDiff中有多少值等于2(在此示例中有3个,因此我们得到一个3x1数组)。

数组xDiffyDiff似乎在某种程度上是相关的,至少从逻辑的角度来看它们应该是这样。我希望这有帮助!