Performance 用于匹配大型矩阵中的行的高效优化代码

Performance 用于匹配大型矩阵中的行的高效优化代码,performance,matlab,row,matching,Performance,Matlab,Row,Matching,我有一个巨大的矩阵,我需要在上面做一些匹配运算。下面是我编写的代码,它工作得很好,但我认为有一些空间可以使它更优化,或者编写另一个代码,在更短的时间内完成匹配。你能帮我一下吗 rowsMatched = find(bigMatrix(:, 1) == matchingRow(1, 1) & bigMatrix(:, 2) == matchingRow(1, 2) & bigMatrix(:, 3) == matchingRow(1, 3))

我有一个巨大的矩阵,我需要在上面做一些匹配运算。下面是我编写的代码,它工作得很好,但我认为有一些空间可以使它更优化,或者编写另一个代码,在更短的时间内完成匹配。你能帮我一下吗

rowsMatched = find(bigMatrix(:, 1) == matchingRow(1, 1) 
        & bigMatrix(:, 2) == matchingRow(1, 2) 
        & bigMatrix(:, 3) == matchingRow(1, 3))
这段代码的问题是我不能使用操作数。因此,如果其中一列不匹配,程序仍会检查下一个条件。我怎样才能避免这种情况

更新:以下是此问题的解决方案:

rowsMatched = find(all(bsxfun(@eq, bigMatrix, matchingRow),2));
谢谢您

您可以使用以矢量化方式执行此操作:

rowsMatched = find(all(bsxfun(@eq, bigMatrix, matchingRow),2));

请注意,它适用于任意数量的列,只是
matchingRow
应具有与
bigMatrix
相同的列数。谢谢,使用您的方法的一个好处是,它使我的代码在将不同的
matchingRow
矩阵与
bigMatrix
矩阵匹配方面具有灵活性,但它比我写的代码慢。你认为有没有一种方法可以让我利用
&
而不是
&
?我认为只有在循环中逐行应用
&