我有两个向量xx
和yy
分别在矩阵x
中保存某些像素的y
和A
索引。我想要做的是检查那些索引的像素值,并计算这些像素中有多少具有值0
。例如,如果xx=[1 2 3]
和y=[2 5 8]
,我想检查这些像素(x,y)(1,2), (2,5), (3,8)
中有多少具有值0
。我可以使用for循环执行此操作,但我认为在Matlab中可以更轻松地完成此操作,因此如果有人可以请提供建议。
2 个答案:
答案 0 :(得分:3)
以下内容应该有效:
sum(A(sub2ind(size(A),xx,yy)) == 0)
首先,将行和列索引转换为矩阵A中的单个索引。然后,检查这些索引的A为零(这将导致为1)。然后你简单总结一下。
答案 1 :(得分:3)
比sub2ind
更脏的方式
sum( A( [1 size(A,1)]*( [ yy; xx ] - 1 ) + 1 ) == 0 )
您可以检查here并查看脏方法比sub2ind
快〜x4倍。因此,如果您需要速度,请使用脏方法;)