Arrays Matlab语法混乱
我有下面的Matlab语法,我不明白它在做什么,特别是xDiff==2部分,它看起来像是引用tDiff数组中特定值的奇怪方式。有人能提供建议吗Arrays Matlab语法混乱,arrays,matlab,Arrays,Matlab,我有下面的Matlab语法,我不明白它在做什么,特别是xDiff==2部分,它看起来像是引用tDiff数组中特定值的奇怪方式。有人能提供建议吗 tTacho = tDiff(xDiff == 2); tDiff和xDiff是47999X1阵列 谢谢第一个操作xDiff==2返回一个逻辑数组,该数组为您提供信息,xDiff中的哪些位置等于2。然后将此位置应用于第二个数组yDiff。可能以下是简单的hepls示例(简化): 在本例中,tTacho和tTacho2是相同的。我们基本上是这样做的:xD
tTacho = tDiff(xDiff == 2);
tDiff和xDiff是47999X1阵列
谢谢第一个操作
xDiff==2
返回一个逻辑数组,该数组为您提供信息,xDiff
中的哪些位置等于2
。然后将此位置应用于第二个数组yDiff
。可能以下是简单的hepls示例(简化):
在本例中,tTacho
和tTacho2
是相同的。我们基本上是这样做的:xDiff
中的第三、第四和第九位置等于2
,因此我们取yDiff
的第三、第四和第九位置的值,并将它们存储在新数组tTacho
中。请注意,tTacho
的长度取决于xDiff
中有多少值等于2
(在本例中有3个,因此我们得到一个3x1数组)
数组
xDiff
和yDiff
似乎在某种程度上是相关的,至少从逻辑角度来看,它们应该是相关的。我希望这有帮助 第一个操作xDiff==2
返回一个逻辑数组,该数组提供信息,xDiff
中的位置等于2
。然后将此位置应用于第二个数组yDiff
。可能以下是简单的hepls示例(简化):
在本例中,tTacho
和tTacho2
是相同的。我们基本上是这样做的:xDiff
中的第三、第四和第九位置等于2
,因此我们取yDiff
的第三、第四和第九位置的值,并将它们存储在新数组tTacho
中。请注意,tTacho
的长度取决于xDiff
中有多少值等于2
(在本例中有3个,因此我们得到一个3x1数组)
数组
xDiff
和yDiff
似乎在某种程度上是相关的,至少从逻辑角度来看,它们应该是相关的。我希望这有帮助 您需要阅读有关逻辑索引的内容。该行从tDiff
的那些位置读取值,其中xDiff==2
。您需要阅读有关逻辑索引的内容。这一行从tDiff
的xDiff==2
位置读取值。你知道如何使用python复制它吗?@Stevengodard我不熟悉python,但我可以告诉你的是,matlab有一种非常特殊的语言语法,正如名称所示,它关注矩阵和矩阵运算。因此,在matlab中,你通常可以用矩阵运算替换循环。我认为如果不在python中使用循环,你将无法复制此代码,但我不能100%确定。你会知道如何使用python复制此代码吗?@Stevengodard我不熟悉python,但我可以告诉你的是,matlab有一种非常特殊的语言语法,顾名思义,它专注于矩阵和矩阵运算。所以在matlab中,你通常可以用矩阵运算来代替循环。我认为如果不在python中使用循环,你将无法重现这段代码,但我不能100%确定。
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);