我有以下Matlab语法,我不明白它在做什么,尤其是xDiff == 2部分,它看起来像是一种奇怪的方式来引用tDiff数组中的特定值。有人可以建议吗?
tTacho = tDiff(xDiff == 2);
tDiff和xDiff是479999x1数组
由于
答案 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);
在此示例中,tTacho
和tTacho2
相同。我们基本上在做什么:xDiff
中的第3,第4和第9位等于2
,因此我们取yDiff
的第3,第4和第9位置的值并存储它们在新数组tTacho
中。请注意tTacho
的长度取决于xDiff
中有多少值等于2
(在此示例中有3个,因此我们得到一个3x1数组)。
数组xDiff
和yDiff
似乎在某种程度上是相关的,至少从逻辑的角度来看它们应该是这样。我希望这有帮助!