多维数组——查找给定列的第一次出现



在文档中,我发现了一个函数findfirst,它能够返回第一个元素的索引,等于给定的索引。

在我的例子中,我有一个向量(或一个一维数组),我想找到第一列,它等于向量。

我知道如何以"困难"的方式做到这一点:使用findnext迭代第一行,然后检查整个列。但有没有更聪明的方法,虽然我不知道?

m为矩阵,v为向量。然后:

findfirst(c->view(m,:,c)==v,1:size(m,2))

应该返回0,如果没有找到向量,如果是列号。进入基本元素访问可能会更快,但这也应该能达到目的。

我现在就是这么做的。感觉不太好。我仍然相信有更好的方法,但我现在没有看到它。

来自C/c++和Python,我的外观有点奇怪。我不知道茱莉亚有什么好品味。欢迎提出建议。

function findfirstcolumn(A, v)
    index = findfirst(A[1,:],v[1])
    found = false
    while index != 0 && found == false
        found = true
        for i = 2:size(v)[1]
            if A[i,index] != v[i]
                found = false
                break
            end
        end
    if found == true
        return index
    end
        index = findnext(A[1,:], v[1], index+1)
    end
    return 0
end

相关内容

  • 没有找到相关文章

最新更新